android中的日期控制項為:DatePicker,時間控制項為TimePicker。通過指定兩個監聽器OnDateChangelistner和OnTimeChangeListner就可以監控這兩個控制項的改變,從而得到相應的時間。
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="選擇您出生的具體時間"/><!-- 定義一個DatePicker組件 --><DatePicker android:id="@+id/datePicker"android:layout_width="wrap_content" android:layout_height="wrap_content"android:layout_gravity="center_horizontal"/><!-- 定義一個TimePicker組件 --><TimePicker android:id="@+id/timePicker"android:layout_width="wrap_content" android:layout_height="wrap_content"android:layout_gravity="center_horizontal"/><!-- 顯示使用者輸入日期、時間的控制項 --><EditText android:id="@+id/show"android:layout_width="fill_parent" android:layout_height="wrap_content"android:editable="false"android:cursorVisible="false"/></LinearLayout>
public class ChooseDate extends Activity{//定義5個記錄目前時間的變數private int year;private int month;private int day;private int hour;private int minute;@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);DatePicker datePicker = (DatePicker)findViewById(R.id.datePicker);TimePicker timePicker = (TimePicker)findViewById(R.id.timePicker);//擷取當前的年、月、日、小時、分鐘Calendar c = Calendar.getInstance();year = c.get(Calendar.YEAR);month = c.get(Calendar.MONTH);day = c.get(Calendar.DAY_OF_MONTH);hour = c.get(Calendar.HOUR);minute = c.get(Calendar.MINUTE);//初始化DatePicker組件,初始化時指定監聽器datePicker.init(year , month ,day , new OnDateChangedListener(){@Overridepublic void onDateChanged(DatePicker arg0, int year, int month, int day){ChooseDate.this.year = year;ChooseDate.this.month = month;ChooseDate.this.day = day;//顯示當前日期、時間showDate(year, month , day , hour, minute);}});//為TimePicker指定監聽器timePicker.setOnTimeChangedListener(new OnTimeChangedListener(){@Overridepublic void onTimeChanged(TimePicker arg0, int hour, int minute){ChooseDate.this.hour = hour;ChooseDate.this.minute = minute;//顯示當前日期、時間showDate(year, month , day , hour, minute);}});}//定義在EditText中顯示當前日期、時間的方法private void showDate(int year, int month , int day, int hour , int minute){EditText show = (EditText)findViewById(R.id.show);show.setText("您的出生日期為:" + year + "年" + (month+1) + "月"+ day + "日 " + hour + "時" + minute + "分");}}