如果你想要讓你的某個元件加入目前的日期,
可是如果使用EditText讓使用者填入時間,那真的是非常的麻煩,
而且使用者的格式也會出錯,
只要利用DatePickerDialog就可以避免以上的麻煩。
首先你先建立好一個Button跟一個TextView
XML如下:
<?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"
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Date"
android:id="@+id/dateButton"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/dateText"
/>
</LinearLayout>
接著你將一些資料初始化
private Button dateButton;
private Calendar calendar;
private int mYear, mMonth, mDay;
private TextView dateText;
private DatePickerDialog datePickerDialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
calendar = Calendar.getInstance();
mYear = calendar.get(Calendar.YEAR);
mMonth = calendar.get(Calendar.MONTH);
mDay = calendar.get(Calendar.DAY_OF_MONTH);
dateText = (TextView)findViewById(R.id.dateText);
dateButton = (Button)findViewById(R.id.dateButton);
dateButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View view) {
showDialog(0);
datePickerDialog.updateDate(mYear, mMonth, mDay);
}
});
}
然後在自己的Activity裡面overwrite onCreateDialog,
上面的showDialog方法就是呼叫我們建立的Dialog,
@Override
然後在自己的Activity裡面overwrite onCreateDialog,
上面的showDialog方法就是呼叫我們建立的Dialog,
protected Dialog onCreateDialog(int id) {
datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int day) {
mYear = year;
mMonth = month;
mDay = day;
dateText.setText("你設定的日期為"+setDateFormat(year,month,day));
}
}, mYear,mMonth, mDay); return datePickerDialog; }
onDateSet方法表示當你按下確定的時候, 就會跳進這個方法
因此我們將選取的時間全部存起來,
接著上面有多一個setDateFormat的方法,
這個方法是可以設置你想要設置的日期格式
private String setDateFormat(int year,int monthOfYear,int dayOfMonth){
onDateSet方法表示當你按下確定的時候, 就會跳進這個方法
因此我們將選取的時間全部存起來,
接著上面有多一個setDateFormat的方法,
這個方法是可以設置你想要設置的日期格式
return String.valueOf(year) + "-" + String.valueOf(monthOfYear + 1) + "-" +
String.valueOf(dayOfMonth); }
一開始你會看到這樣的畫面
public void onClick(View view) {
showDialog(0);
datePickerDialog.updateDate(mYear, mMonth, mDay);
}