1.在 xml中布置Datepicker和TimePicker
<DatePicker android:id="@+id/dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TimePicker android:id="@+id/tp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
2.在Activity中初始化
private TimePicker tp;
private DatePicker dp;
protected void onCreate(Bundle savedInstanceState) {
....
dp=(DatePicker)findViewById(R.id.dp);
tp=(TimePicker)findViewById(R.id.tp);
}
3.初始化calendar類
private Calendar cl;
private int year,month,day,hour,minute;
protected void onCreate(Bundle savedInstanceState) {
·····
cl=Calendar.getInstance();
year=cl.get(Calendar.YEAR);
month=cl.get(Calendar.MONTH)+1;
day=cl.get(Calendar.DAY_OF_MONTH);
hour=cl.get(Calendar.HOUR_OF_DAY);
minute=cl.get(Calendar.MINUTE);
setTitle(year+"-"+month+"-"+day+"-"+hour+"-"+minute);
}
WARNING
month=cl.get(Calendar.MONTH)+1;
其中g(shù)et(Calendar.MONTH)方法得到的數(shù)從0開始
setTitle(year+"-"+month+"-"+day+"-"+hour+"-"+minute);
該代碼用于改變標(biāo)題
4.初始化DatePicker的日期
dp.init(year, cl.get(Calendar.MONTH), day, new OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
setTitle(year+"-"+(monthOfYear+1)+"-"+dayOfMonth);
}
});
WARNING
dp.init(year, cl.get(Calendar.MONTH), day, new OnDateChangedListener()
該方法中,月份需要用從0開始的Calendar.MONTH
setTitle(year+"-"+(monthOfYear+1)+"-"+dayOfMonth);
傳入?yún)?shù)為從0開始的月數(shù),在傳出時需要+1
5.初始化TimePicker的時間,并實現(xiàn)時間選擇器
tp.setOnTimeChangedListener(new OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
// TODO Auto-generated method stub
setTitle(hourOfDay+":"+minute);
}
});
6.實現(xiàn)日期選擇對話框和時間選擇對話框
new DatePickerDialog(this,new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
setTitle(year+"-"+(monthOfYear+1)+"-"+dayOfMonth);
}
}, year,cl.get(Calendar.MONTH), day).show();
new TimePickerDialog(this, new OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
// TODO Auto-generated method stub
setTitle(hourOfDay+":"+minute);
}
}, hour, minute, true).show();
同理,注意傳入的是Calendar.MONTH是以0開頭的月數(shù)
new TimePickerDialog()方法的最后一個參數(shù)是是否選擇24小時制(true or false)