Android時間、日期對話框

Android時間、日期對話框

在Android中,時間日期控件相對來說還是比較豐富的。其中,DatePicker用來實現日期輸入設置,TimePicker用來實現時間輸入設置。DatePickerDialog用來顯示日期對話框,TimePickerDialog用來顯示時間對話框。AnalogClock用來顯示一個指針式時鐘,DigitalClock用來顯示一個數字式時鐘。

下面就分別對這些時間日期控件做一個簡單的介紹。

1.DatePicker

  在Android中,DatePicker用來實現日期輸入設置,日期的設置範圍爲1900年1月1日至2100年12月31日。

1.1常用xml屬性

  DatePicker的常用xml屬性如圖1所示:

圖1 DatePicker常用xml屬性

  其中,android:calendarViewShown[boolean]用於設置是否顯示calendar view;android:endYear[int]用於設置截至日期;android:maxDate[int]用於設置最大的日期;android:minDate[int]用於設置最小的日期;android:spinnersShown[boolean]用於設置是否顯示spinners;android:startYear[int]用於設置起始日期。

1.2常用方法

  DatePicker的常用方法有以下一些:

(1)public CalendarView getCalendarView();   //獲取CalendarView

(2)public boolean getCalendarViewShown();   //獲取CalendarView是否顯示

(3)public int getDayOfMonth();         //獲取當前日期的日

(4)public long getMaxDate();            //獲取最大日期

(5)public long getMinDate();            //獲取最小日期

(6)public int getMonth();               //獲取當前日期的月

(7)public boolean getSpinnersShown();        //獲取Spinners是否顯示

(8)public int getYear();             //獲取當前日期的年

(9)public void init(int year,int monthOfYear,int dayOfMonth,DatePicker.OnDateChangedListener onDateChangedListener);     //初始化日期

(10)public void setCalendarViewShown(boolean shown);      //設置是否顯示CalendarView

(11)public void setMaxDate(long maxDate);       //設置最大日期

(12)public void setMinDate(long minDate);        //設置最小日期

(13)public void setSpinnersShown(boolean shown);   //設置是否顯示Spinners

(14)public void updateDate(int year,int month,int dayOfMonth);    //更新當前日期 

2.TimePicker

  在Android中,TimePicker用來實現時間輸入設置,可以選擇12或24小時模式。TimePicker的常用方法有以下一些:

(1)public Integer getCurrentHour();       //獲取當前時間的小時

(2)public Integer getCurrentMinute();       //獲取當前時間的分鐘

(3)public boolean is24HourView();        //獲取是否爲24小時模式

(4)public void setCurrentHour(Integer currentHour);            //設置當前時間的小時

(5)public void setCurrentMinute(Integer currentMinute);      //設置當前時間的分鐘

(6)public void setIs24HourView(Boolean is24HourView);      //設置24小時模式

3.DatePickerDialog

  在Android中,DatePickerDialog用來顯示日期對話框。DatePickerDialog的常用方法有以下一些:

(1)public DatePicker getDatePicker();                                //獲取DatePicker中的日期值 

(2)public void onClick(DialogInterface dialog,int which);       //響應對話框中的點擊事件

(3)public void onDateChanged(DatePicker view,int year,int month,int day);       //響應日期改變事件

(4)public void updateDate(int year,int monthOfYear,int dayOfMonth);              //更新當前日期

4.TimePickerDialog

  在Android中,TimePickerDialog用來顯示時間對話框。TimePickerDialog的常用方法有以下一些:

(1)public void onClick(DialogInterface dialog,int which);                             //響應對話框中的點擊事件

(2)public void onTimeChanged(TimePicker view,int hourOfDay,int minute);    //響應時間改變事件

(3)public void updateTime(int hourOfDay,int minuteOfHour);                       //更新當前時間

5.AnalogClock

  在Android中,AnalogClock用於顯示指針式時鐘,該時鐘僅有時鐘和分鐘兩個指針。

6.DigitalClock

  在Android中,DigitalClock用來顯示數字式時鐘,顯示格式爲HH:MM:SS AM/PM。

7.實例

  清楚了上面一些關於時間日期控件的屬性和方法之後,我們就可以很容易的使用時間日期控件了。

  在本例中,我們通過DatePicker實現了日期輸入設置控件的顯示,通過TimePicker實現了時間輸入設置控件的顯示。並在主界面中中添加了兩個Button控件,分別用於彈出日期設置對話框DatePickerDialog和時間設置對話框TimePickerDialog。主界面如圖2所示:

圖2 主界面

  通過DatePicker控件中的“+”和“-”按鈕可以分別調整年月日的值,通過TimePicker的“+”和“-”按鈕可以分別調整小時和分鐘的值。要監聽年月日值的改變,需要實現接口android.widget.DatePicker.OnDateChangedListener中的onDateChanged()方法;要監聽小時和分鐘的值的改變,需要實現接口android.widget.TimePicker.OnTimeChangedListener中的onTimeChanged()方法。具體實現方法如下:

/*
* Function 時間改變觸發函數
* Param view時間控件對象;hourOfDay小時;minute分鐘
*/
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
	Toast.makeText(MainActivity.this, "當前時間爲 " + hourOfDay + ":" + minute, 
	Toast.LENGTH_LONG).show();
}

/*
* Function 日期改變觸發函數
* Param view日期控件對象;year年;monthOfYear月;dayOfMonth日
*/
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
	Toast.makeText(MainActivity.this, "當前日期爲" + year + "年" + monthOfYear + "月" + dayOfMonth + "日", 
	Toast.LENGTH_LONG).show();
}

  通過對DatePicker控件和TimePicker控件進行監聽,當點擊DatePicker控件或TimePicker控件中的“+”或“-”按鈕時,將彈出當前日期或當前時間的提示信息,如圖3所示:

 圖3 調整日期控件的日期值

  除此之外,我們也可以通過日期對話框DatePickerDialog和時間對話框TimePickerDialog來調整日期和時間值。通過點擊按鈕“通過DatePickerDialog設置日期值”可以彈出日期對話框,通過點擊按鈕“通過TimePickerDialog設置時間值”可以彈出時間對話框,時間設置對話框如圖4所示。

圖4 時間設置對話框

  在時間設置對話框中,同樣可以調整時間值。需要注意的是,在DatePickerDialog控件中需要實現DatePickerDialog.OnDateSetListener接口,並實現該接口中的onDateSet()方法。在TimePickerDialog控件中需要實現TimePickerDialog.OnTimeSetListener接口,並實現該接口中的onTimeSet()方法。具體實現方法如下:

/*
* Function Button按鈕響應
* Param v按鈕對象
*/
public void onClick(View v) {
	switch (v.getId()) {
		case R.id.buttonChangeDate:
			MyDatePickerDialog myDatePickerDialog = new MyDatePickerDialog();
			DatePickerDialog datePickerDialog = new DatePickerDialog(MainActivity.this, myDatePickerDialog, mDatePicker.getYear(), mDatePicker.getMonth(), mDatePicker.getDayOfMonth());
			datePickerDialog.show();          //顯示日期設置對話框
			break;
		case R.id.buttonChangeTime:
			MyTimePickerDialog myTimePickerDialog = new MyTimePickerDialog();
			TimePickerDialog timePickerDialog = new TimePickerDialog(MainActivity.this, myTimePickerDialog, mTimePicker.getCurrentHour(), mTimePicker.getCurrentMinute(), true);
			timePickerDialog.show();          //顯示時間設置對話框
			break;
	}
}
    
/*
* Function 自定義MyDatePickerDialog類,用於實現DatePickerDialog.OnDateSetListener接口,當點擊日期設置對話框中的“設置”按鈕時觸發該接口方法
*/
public class MyDatePickerDialog implements DatePickerDialog.OnDateSetListener {
	public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
		mDatePicker.updateDate(year, monthOfYear, dayOfMonth);          //更新日期值
	}
}    
     
/*
* Function 自定義MyTimePickerDialog類,用於實現TimePickerDialog.OnTimeSetListener接口,當點擊時間設置對話框中的“設置”按鈕時觸發該接口方法
*/
public class MyTimePickerDialog implements TimePickerDialog.OnTimeSetListener {
	public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
		mTimePicker.setCurrentHour(hourOfDay);          //設置TimePicker的小時值
		mTimePicker.setCurrentMinute(minute);          //設置TimePicker的分鐘值
	}        
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章