DatePickerDialog與TimerPicker的功能比較簡單,用戶也簡單,只要以下兩步便可。java
①經過new關鍵字建立DatePickerDialog、TimePickerDialog實例,調用它們的show()方法便可將日期選擇對話框、時間選擇對話框顯示出來。android
②爲DatePickerDialog、TimePickerDialog綁定監聽器,這樣能夠保證用戶經過DatePickerDialog、TimePickerDialog設置事件時觸發監聽器,從而經過監聽器來獲取用戶設置的事件。app
下面的程序中定義了兩個按鈕,一個按鈕用於打開日期選擇對話框,一個用於打開時間對話框。該程序的界面佈局文件以下:ide
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center_horizontal" > <EditText android:id="@+id/show" android:layout_width="fill_parent" android:layout_height="wrap_content" android:editable="false"/> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_horizontal"> <Button android:id="@+id/dateBn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="設置日期"/> <Button android:id="@+id/timeBn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="設置時間"/> </LinearLayout> </LinearLayout>
對應的Activity後臺代碼文件以下:佈局
package org.crazyit.helloworld; import java.util.Calendar; import android.os.Bundle; import android.app.Activity; import android.app.DatePickerDialog; import android.app.TimePickerDialog; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.DatePicker; import android.widget.EditText; import android.widget.TimePicker; public class DateDialogTest extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.date_dialog_test); Button dateBn=(Button)findViewById(R.id.dateBn); Button timeBn=(Button)findViewById(R.id.timeBn); //爲「設置日期」按鈕綁定監聽器 dateBn.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) { // TODO Auto-generated method stub Calendar c=Calendar.getInstance(); //直接建立一個DatePickerDialog對話框實例,並將它顯示出來 new DatePickerDialog(DateDialogTest.this, //綁定監聽器 new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) { // TODO Auto-generated method stub EditText show=(EditText)findViewById(R.id.show); show.setText("您選擇啦:"+year+"年"+(month+1)+"月"+dayOfMonth+"日"); } },c.get(Calendar.YEAR),c.get(Calendar.MONTH),c.get(Calendar.DAY_OF_MONTH)).show(); } }); //爲「設置時間」按鈕綁定監聽器 timeBn.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub Calendar c=Calendar.getInstance(); //建立一個TimePickerDialog實例,並把它顯示出來 new TimePickerDialog(DateDialogTest.this, //綁定監聽器 new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { // TODO Auto-generated method stub EditText show=(EditText)findViewById(R.id.show); show.setText("您選擇了:"+hourOfDay+"時"+minute+"分"); } } //設置初始時間 ,c.get(Calendar.HOUR_OF_DAY) ,c.get(Calendar.MINUTE) //true表示採用24小時制 ,true).show(); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.date_dialog_test, menu); return true; } }
上面的程序中兩段粗體字代碼就是建立並顯示DatePickerDialog、TimePickerDialog的關鍵代碼。運行上面的程序將會看到以下界面效果。
this