博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android 时间对话框 TimePickerDialog简介
阅读量:6816 次
发布时间:2019-06-26

本文共 2176 字,大约阅读时间需要 7 分钟。


个人也提醒功能的时候用到了TimePickerDialog对话框,查阅了非常多技术资料,可是感觉非常多东西都说的不是非常具体,而且非常多地方。都有不完好的地方。比方有弹出对话框得到的不是系统当前的时间,而是一个其它时间的现象,让人非常是苦闷。所以在经过几度研究之后,决定把个人对此空间的部分理解拿出来与大家讨论。如有不正确之处。敬请谅解。会加以改进。

闲话不多说。直接进入主题:
首先,我们要在程序中声明一个日历的对象,并对其实例获取日历实例,后面会用到。

private Calendar c = Calendar.getInstance();
实例化后便能够对该历对象进行操作了,如c.get方法能够获得该日历对象中的相关变量(如年、月、日、时、分、秒等)。这些变量的值在实例化“c = Calendar.getInstance();”时已经被设置为系统默认时间;利用c.set方法能够对日历对象的相关变量进行设置。

日历对象另一个重要的方法是setTimeInMillis。该方法仅仅有一个參数,即距离1970年1月1日0时的毫秒数。调用这种方法,则会依据你传入的毫秒数对日历对象中的变量进行对应设置,假设想设置为当前的系统时间,则用下面方式:“c.setTimeInMillis(System.currentTimeMillis());”
以下进入主角,即时间对话框的开发

给出部分实现代码,详细的细节,自己潜心研究

e1 = (EditText) findViewById(R.id.c1_time);e1.setOnClickListener(new OnClickListener() {        @Override        public void onClick(View v) {                c.setTimeInMillis(System.currentTimeMillis());                int mHour = c.get(Calendar.HOUR_OF_DAY);                int mMinute = c.get(Calendar.MINUTE);                new TimePickerDialog(ClassTimeSet.this,                                new TimePickerDialog.OnTimeSetListener() {                                        @Override                                        public void onTimeSet(TimePicker view,                                                        int hourOfDay, int minute) {                                                c.setTimeInMillis(System.currentTimeMillis());                                                c.set(Calendar.HOUR_OF_DAY, hourOfDay);                                                c.set(Calendar.MINUTE, minute);                                                c.set(Calendar.SECOND, 0); // 设为 0                                                c.set(Calendar.MILLISECOND, 0); // 设为 0                                        }                                }, mHour, mMinute, true).show();        }});
//推断时间的小时和分钟是否低于10的情况
String strHourOfDay = hourOfDay < 10 ?

"0" + hourOfDay : "" + hourOfDay;

 String strMinute = minute < 10 ? "0" + minute : "" + minute;

TimePickerDialog方法有五个參数,第一个參数(MenuView.this)为弹出的时间对话框所在的activity指针;第二个參数我们最后说;第三个參数(hour)和第四个參数(minute)为弹出的时间对话框的初始显示的小时和分钟,这两个变量在蓝色代码中进行初始化;第五个參数为设置24时显示參数,true代表时间以24时制显示时间。

版权声明:本文博主原创文章,博客,未经同意不得转载。

你可能感兴趣的文章
Angular基础(七) HTTP & Routing
查看>>
使用Freeline提高你的工作效率
查看>>
FTP服务器
查看>>
爬百度新闻
查看>>
TCP协议与UDP协议的区别
查看>>
软件定时器算法
查看>>
VB.NET 自动打包程序
查看>>
CISCO引擎RPR SSO
查看>>
LINUX APACHE 安装测试
查看>>
Java导致登录UCS Manager异常
查看>>
HTTP协议
查看>>
Win10怎么改Host文件?Win10编辑host文件方法(无视权限)
查看>>
sql convert and cast
查看>>
我的NodeJS一年之旅总结
查看>>
MyBatis-3.4.2-源码分析6:解析XML之objectWrapperFactoryElement & reflectorFactoryElement
查看>>
javascript与获取鼠标位置有关的属性
查看>>
Oracle database 11.2.0.3.0 升级至 11.2.0.3.14
查看>>
heartbeat理论介绍
查看>>
简单实现MVC模式
查看>>
mysql连接小错误一例
查看>>