设为首页 加入收藏

TOP

Android时间对话框TimePickerDialog介绍
2014-11-24 14:12:37 来源: 作者: 【 】 浏览:1
Tags:Android 时间 对话 TimePickerDialog 介绍

首先要做的是声明一个日历类的对象:


private Calendar c;


然后对其进行实例化:


c = Calendar.getInstance();


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


日历对象还有一个重要的方法是setTimeInMillis,该方法只有一个参数,即距离1970年1月1日0时的毫秒数,调用这个方法,则会根据你传入的毫秒数对日历对象中的变量进行相应设置,如果想设置为当前的系统时间,则用以下方式:“c.setTimeInMillis(System.currentTimeMillis());”


介绍完日历类相关知识后进入正题,即时间对话框的开发。给出如下实例代码,其中红色部分为弹出对话框的按钮监听代码;蓝色代码为设置日历对象代码;剩下的便是时间对话框代码。


final ImageButton time = (ImageButton) findViewById(R.id.time);


time.setOnClickListener(new ImageButton.OnClickListener() {


public void onClick(View view){


c.setTimeInMillis(System.currentTimeMillis());


int hour = c.get(Calendar.HOUR_OF_DAY);


int minute = c.get(Calendar.MINUTE);


new TimePickerDialog(MenuView.this,new OnTimeSetListener() {


@Override


public void onTimeSet(TimePicker view,inthourOfDay,int minute)


{


c.setTimeInMillis(System.currentTimeMillis());


c.set(Calendar.HOUR_OF_DAY,hourOfDay);


c.set(Calendar.MINUTE, minute);


c.set(Calendar.SECOND, 0);


c.set(Calendar.MILLISECOND, 0);


}


}, hour, minute, true).show();


}


});


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


下面回过头来说第二个参数,首先我们要了解一下时间对话框的样式,如下图所示:




点击“+”标题处和方框中的数字会同时增加,同理点击“-”则数字以1递减。对话框有两个button,点击“Cancel”按钮后没有任何操作,而如果点击了“Set”按钮,则会执行onTimeSet方法中的代码(橘黄色)。


所以根据示例代码的逻辑,点击弹出时间对话框的按钮后,显示的是系统当前时间,调整好时间后点击Set按钮,日历对象的时间变量改为设置的时间。但是再次点击弹出时间对话框按钮后,显示的仍是系统当前时间(蓝色代码中的c.setTimeInMillis(System.currentTimeMillis());)。当然,如果想在程序退出后记录上一次设置的时间值,可以考虑使用轻量级数据库Preferences相关知识解决。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android AlarmManager的时间设定.. 下一篇Android屏幕适配不同的资源图片、..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: