学Android---DatePicker&TimePicker

1、什么是DatePicker和TimePicker
DatePicker:日期选择器
TimePicker:时间选择器
它们通常以对话框的形式在用户需要选择日期和时间的时候出现,如添加提醒或设定闹钟的时候。其样式如下图所示:
DatePicker示例
TimePicker示例

2、TimePicker的使用

为了方便,我先在Activity中添加了以下代码:获取一个Calendar对象,用这个对象来获取手机系统显示的年、月、日、时、分的信息。并将Activity的title设置为年-月-日 时:分 的格式显示

//获取日历的一个对象
cal=Calendar.getInstance();

//获取年月日时分的信息
year=cal.get(Calendar.YEAR);
//在Calendar中month是从0开始计算的,所以此处month应该+1
month=cal.get(Calendar.MONTH)+1;
day=cal.get(Calendar.DAY_OF_MONTH);
hour=cal.get(Calendar.HOUR_OF_DAY);
minute=cal.get(Calendar.MINUTE);

setTitle(year+"-"+month+"-"+day+" "+hour+":"+minute);

TimePicker和DatePicker有两种显示方式:
(1)贴合在屏幕上,也就是直接出现在Activity中
首先,我们需要在布局文件(activity_main.xml)中添加一个DatePicker或TimePicker控件,并设置有关的属性,这里以TimePicker为例:

    <TimePicker
        android:id="@+id/timepicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerInParent="true" />

这里候运行项目已经可以在界面中看到TimePicker了,但是我们还需要为它设置事件监听器:
类似于Button的onClickListener,TimePicker的事件监听器是onTimeChangedListener

private TimePicker timepicker;
timepicker = (TimePicker) findViewById(R.id.timepicker);
//TimePicekr监听事件
timepicker.setOnTimeChangedListener(new OnTimeChangedListener() {

    @Override
    public void onTimeChanged(TimePicker arg0, int Hour, int Minute) {
        // TODO Auto-generated method stub
        setTitle(Hour+":"+Minute);
    }
}); 

运行:效果图如下:
这里写图片描述
–>
这里写图片描述

(2)以对话框的形式出现,如图:
这里写图片描述
这时候就需要在Activity中添加一个TimePickerDialog,而不使用xml布局文件。代码如下所示:

然后添加对话框:

//TimePickerDialog
new TimePickerDialog(this, new OnTimeSetListener() {

    @Override
    public void onTimeSet(TimePicker view, int Hour, int Minute) 
    {
        // TODO Auto-generated method stub
            setTitle(Hour+":"+Minute);
    }
}, hour, minute, true).show();

TimePickerDialog中的参数原型如下:
TimePickerDialog(context, callBack, hourOfDay, minute, is24HourView)
//context:上下文,此处用this
//callback:用来设置onTimeSetListener,也就是时间被设定的监听器
//hourOfDay:默认选中的小时
//minute:默认选中的分钟
//is24HourView:其值为boolean类型,true表示采用24小时制

在onTimeSet方法中添加监听事件,就像button的onClick方法一样,在这里执行的事件是将Activity的Title更改为我们选择的时间。最后别忘了show()!!!
运行,刚打开时如上图所示,选择好时间(我选择的时间是4:25)后点击Done,可以看到标题栏发生了改变,如下图:
这里写图片描述

3、DatePicker的使用
根据TimePicker的设置同理可使用DatePicker,下面直接给出代码:
(1)贴合在屏幕上:

    <DatePicker
        android:id="@+id/datepicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
private DatePicker datepicker;
datepicker=(DatePicker) findViewById(R.id.datepicker);
//初始化datePicker
//init方法中月份会自动+1,所以不能使用上面所获取的month
datepicker.init(year, cal.get(Calendar.MONTH), day, new OnDateChangedListener() {

    @Override
    public void onDateChanged(DatePicker view, int Year, int Month, int Day) {
        // TODO Auto-generated method stub
        setTitle(Year+"-"+(Month+1)+"-"+Day);
    }
});

(2)以对话框形式显示DatePicker

new DatePickerDialog(this, new OnDateSetListener() {

    @Override
    public void onDateSet(DatePicker view, int Year, int Month, int Day) {
        // TODO Auto-generated method stub
        setTitle(Year+"-"+(Month+1)+"-"+Day);
    }
}, year, cal.get(Calendar.MONTH), day).show();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值