DatePicker和TimePicker控制項
使用DatePicker和TimePicker,故名思議,使用者可以對時間進行選擇。XML代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout ...... >
<TextView ...... android:id="@+id/ui_date1"/>
<DatePicker android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ui_datepick"/>
<TextView ...... android:id="@+id/ui_time1"/>
<TimePicker android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ui_timepick"/>
</LinearLayout>
如果我們不在代碼中設定日期和時間的值,初始時,DatePiker和TimePiker將設定為當前日期和時間。對於這兩個控制項,在代碼中,我們可以它們進行讀寫操作。對於日期有:
TextView dateText = (TextView)findViewById(R.id.ui_date1);
dateText.setText("Set default date to 2013/1/1");
DatePicker dp = (DatePicker)findViewById(R.id.ui_datepick);
//對DatePicker進行設定,使用dp.init(year, monthOfYear, dayOfMonth, onDateChangedListener) ,需要注意,月份的有效值是“0-11”,例如dp.init(2013, 1, 1, null); 則是設定2013.2.1 。
dp.init(2013,0,1,new DatePicker.OnDateChangedListener() {
//通過onDateChangedListener對日期發生變化進行觸發
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
//注意:會被觸發兩次。由於Picker實際上包含日曆和日期轉盤兩部分(會自動同步),日曆和日期變化產生兩次觸發。但日曆變化可以自動使日期變化,即則通過日曆的日期變化只觸發一次。
Log.d("UiDateTimeTest","set Date to " + year+ "." + (monthOfYear+1)+"."+dayOfMonth);
}
});
dp.setCalendarViewShown(false); //不顯示日曆部分,只顯示日期轉盤部分
對於時間:
//設定時間發生變化的處理
TimePicker.OnTimeChangedListener timeChangedFunc = new TimePicker.OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
Log.d("UiDateTimeTest","Set time to "+hourOfDay + ":" + minute);
}
};
TextView timeText = (TextView)findViewById(R.id.ui_time1);
timeText.setText("Set default time to 16:00");
TimePicker tp = (TimePicker)findViewById(R.id.ui_timepick);
tp.setIs24HourView(true);
tp.setCurrentHour(16);
tp.setCurrentMinute(0);
tp.setOnTimeChangedListener(timeChangedFunc);
//這裡用匿名類方式時,Eclipse顯示錯誤,所以本例直接用對象
DigitalClock和AnalogClock控制項
數字時鐘和類比時鐘。和其他的空間不同,我們不能對它所顯示的時間進行修改,它們將顯示系統的即時時間。使用它們的一個方便是,我們不需要進行代碼編寫,它們可以自動地不斷地進行同步和更新時間。XML如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout …… >
<DigitalClock android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<AnalogClock android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
相關連結:
我的Android開發相關文章