官方提供的例子,大致如下:
1. 在Activity中重写onCreateDialog方法,生成日期选择器;
2. 定义OnDateSetListener;
3. 定义一个更新UI的方法
啰嗦。而且如果一个窗口有多个控件需要日期选择器的话,需要对每个选择器加以区别,代码就变得特别纷繁复杂。
有没有简便的使用方式呢?有,仅需短短几行代码,搞定!
首先,在工具类里定义一个static方法:
public static void chooseDate(Context ctx, final TextView text){
Calendar c = Calendar.getInstance();
new DatePickerDialog(ctx, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int day) {
String date = year + "-" + (month + 1) + "-" + day;
text.setText(date);
}
}, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DATE))
.show();
}
然后,在需要使用日期选择器的地方,比如某个文本输入框的单击事件里写上如下代码:
Utils.chooseDate(MyActivity.this, beginTime);
因为EditText是TextView的子类,上面的写法是没有问题的,可以在EditText里显示出选择后的日期值。
在另外一个文本输入框的单击事件里写上同样的代码:
Utils.chooseDate(MyActivity.this, endTime);
是不是很方便?