先来DatePicker,一言不合就上代码:
Calendar calendar = getInstance();
year = calendar.get(Calendar.YEAR);
mouth = calendar.get(Calendar.MONTH);
day = calendar.get(Calendar.DAY_OF_MONTH);
datePicker = (DatePicker) findViewById(R.id.datePicker);
datePicker.init(year, mouth, day, new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
showToast(year + "年" + (monthOfYear + 1) + "月" + dayOfMonth + "日");
}
});
我们先创建一个Calender对象,注意要用到getInstance()方法来创建实例,通过get()方法分别获取到当前年月日的信息,通过datePicker中的init()方法初始化,传进去年,月,日的值并且重写OnDateChangedListener()中的onDateChanged方法,我在这里仅仅用Toast输出一下。
哦哦哦,直接趁热来DataPickerDialog:
new DatePickerDialog(DatePickerActivity.this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
showToast("当前选择 " + year + "年" + (month + 1) + "月" + dayOfMonth + "日");
}
}, year, mouth, day).show();
DatePickerDialog就容易多了,直接new出来,构造方法中重写OnDateSetListener()的onDateSet()方法,当点击dialog中的确定时才会触发。
注意哦,DatePickerDialog是OnDateSet,区别于DatePicker的OnDateChanged,changed是指每次改变数据都会触发,而set是指确定时才会触发
TimePickerDialog:
calendar = getInstance();
year = calendar.get(Calendar.YEAR);
mouth = calendar.get(Calendar.MONTH);
day = calendar.get(Calendar.DAY_OF_MONTH);
hour = calendar.get(Calendar.HOUR);
minute = calendar.get(Calendar.MINUTE);
timePicker = (TimePicker) findViewById(R.id.timePicker);
timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
showToast("您选择了"+hourOfDay+":"+minute);
}
});
同上,但要注意的是TimePicker直接调用setOnTimeChangedListener,而不是init(),
TimePickerDialog:
new TimePickerDialog(TimePickerActivity.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
showToast("当前选择 "+hourOfDay+":"+minute);
}
},hour,minute,true).show();
这个就没啥说的了吧,和DatePickerDialog完全一样。
总结,没有Dialog的全是changed,有Dialog的全是Set