DatePicker
1.獲取一個日歷對象:
Calendar cal=Calendar.getInstance();
2.獲取當前日期及時間:
int year=cal.get(Calendar.YEAR);
int month=cal.get(Calendar.MONTH)+1;//特殊的是Calendar中月份從0開始計數,所以加1得到常規月份
int day=cal.get(Calendar.DAY_OF_MONTH);
int hour=cal.get(Calendar.HOUR_OF_DAY);
int minute=cal.get(Calendar.MINUTE_OF_HOUR);
setTitle(year+"-"+month+"-"+day+"-"+hour+":"+minute);
3.初始化datePicker
datePicker.init(year,month,day,new OnDateChangedListener()){
@Override
//監聽用到的方法
public void onDateChanged(DatePicker view,int year,int cal.get(Calendar.MONTH_OF_YEAR),int dayOfMonth){
//使標題上的日期能隨着選擇的改變而改變
setTitle(year+"-"+(monthOfYear+1)+"-"+dayOfMonth);
}
}
使用java的工具類,獲取當前的年月日時分
月份是從0開始,所以獲取的時候要+1
日:使用day_of_month方法是獲取當前月的那天
時:使用hour_of_day方法是獲取當天的幾時
DatePickerDialog 以對話框的形式選擇日期
代碼:
new DataPickerDialog(this,new OnDateSetListener(){
@Override
public void onDateSet(DatePicker view,int year,int monthOfYear,int dayOfMonth){
setTitle(year+":"+(monthOfYear+1)+"-"+dayOfMonth);
}
},year,cal.get(Calendar.MONTH),day).show();
其中參數year,get(Calendar).MONTH,day相當於init方法中的初始化。
千萬別忘記寫.show()方法,否則不會顯示在頁面上。
TimePicker
TimePicker timePicker=(TimePicker)findViewById(R.id.timePicker1);
//時間選擇器不需要手動初始化,默認初始化為當前的時間
timePicker.setOnTimeChangedListener(new OnTimeChangedListener()){
@Override
public void onTimeChanged(TimePicker view,int hourOfDay,int minute){
setTitle(hourOfDay+"-"+minute);
}
}
DatePicker日期選擇器,需要在初始化的時候(init)設置監聽OnDateChangeListener並實現監聽方法,TimePicker時間選擇器不需要初始化只需要設置監聽OnTimeChangedListener方法即可
TimePickerDailog
代碼:
new TimePickerDialog(context,callBack,hourOfDay,minute,is24HourView()).show();
其中參數hourOfDay,minute需要自己定義,也就是說TimePickerDialog不會自行初始化時間,參數is24HourView為Boolean類型
sdk方法中的時間參數只有month,day會是這種形式monthOfYear,dayOfMonth,因為月數,日數依賴於后者
總結:
TimePickerDialog和TimePicker不同的是,它不用在布局文件中聲明,直接通過類就可以new出來。在Android中這種彈出式的UI一般都不用在布局文件中聲明,直接用類就可以搞定,一般要顯示他們都要顯示地調用show()方法,比如Toast這個類也是一樣。

