一、OnDateChangedListener和OnTimeChangedListener()
1、當用戶更改了DatePicker裏的年、月、日時,將觸發OnDateChangedListener監聽器的onDateChange()事件
2、當用戶更改了TimePicker裏的時、分時,將觸發OnTimeChangedListener監聽器的onTimeChanged事件
二、OnDateSetListener()和OnTimeSetListener()
1、當用戶更改了DatePickerDialog裏的年、月、日時,將觸發OnDateSet-Listener監聽器的onDateSet()事件
2、當用戶更改了TimePicker裏的時、分時,將觸發OnTimeSetListener監聽器的onTimeSet()事件
三、使用DatePicker實現日曆選擇器
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.DatePicker;
import android.widget.TimePicker;
import java.util.Calendar;
public class MainActivity extends AppCompatActivity {
private TimePicker timePicker;
private DatePicker datePicker;
private Calendar cal;
private int year;
private int month;
private int day;
private int hour;
private int minute;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//獲取日曆的對象
cal = Calendar.getInstance();
//獲取年月日時分秒的信息
year = cal.get(Calendar.YEAR);
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);
datePicker = (DatePicker) findViewById(R.id.datePicker);
timePicker = (TimePicker) findViewById(R.id.timePicker);
//datePicker初始化,第四個參數對應dataPicker的事件監聽器,獲取到當前選擇的日期的結果
datePicker.init(year, cal.get(Calendar.MONTH), day, new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker datePicker, int i, int i1, int i2) {
setTitle(i + "-" + (i1+1) + "-" + i2 );
}
});
}
}
四、使用TimePicker實現時間選擇器
timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker timePicker, int i, int i1) {
setTitle(i + ":" + i1 );
}
五、使用DatePickerDialog實現日期選擇對話框
// DatePickerDialog(上下文,事件監聽器)
new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
setTitle(i + "-" + (i1 + 1) + "-" + i2);
}
},year,cal.get(Calendar.MONTH),day).show();
六、使用TimePickerDialog實現時間選擇對話框
new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int i, int i1) {
setTitle(i + ":" + i1);
}
},hour,minute,true).show();
七、注意事項
1、DataPicker對象以init()這個方法來指定DatePicker初始的年、月、日及OnDateChangeListener()的事件;而TimePicker對象則是直接以setOnTimeChangedListener()事件來處理時間改變時程序要做的操作。
2、DatePickerDialog與TimePickerDialog與前面這兩種類型的對象最大的區別在於DatePicker與TimePickerDialog對象則是以彈出Dialog的方式來顯示