android 时间对话框 TimePickerDialog详细介绍


个人在做提醒功能的时候用到了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时制显示时间。


你可能感兴趣的:(android,时间,对话框,12小时,24小时)