所以從你的解釋,你想創建一個日期間隔選擇器只需點擊一個按鈕。 通過使用類比從你的榜樣,你必須做到以下幾點:
// create two constants
static final int DATE_DIALOG_FROM = 0;
static final int DATE_DIALOG_TO = 1;
// create case for two pickers
protected Dialog onCreateDialog(int id) {
switch (id) {
case DATE_DIALOG_FROM:
return new DatePickerDialog(this, fromDateSetListener, mYear, mMonth,mDay);
case DATE_DIALOG_TO:
return new DatePickerDialog(this, toDateSetListener, mYear, mMonth,mDay);
}
return null;
}
// create two listeners for both of the cases
private DatePickerDialog.OnDateSetListener fromDateSetListener = new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Toast.makeText(AccountsActivity.this,"From:" + year+"."+monthOfYear+"."+dayOfMonth, Toast.LENGTH_SHORT).show();
showDialog(DATE_DIALOG_TO);
}
};
private DatePickerDialog.OnDateSetListener toDateSetListener = new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) {
Toast.makeText(AccountsActivity.this,"To:" + year+"."+monthOfYear+"."+dayOfMonth, Toast.LENGTH_SHORT).show();
updateDisplay();
}
};
當你運行你的應用程序,第二選擇器將首先完成後出現的權利。
稍後,您可以優化這段代碼,添加自定義採摘等.. 如果有人知道一個更好的方式來創建一個日期間隔PICKER請告訴我們!
我不確定你爲什麼要打onClick()兩次?如果你想執行一個動作兩次,然後把它放在onClick()循環中......也許你可以澄清你的意思是什麼問題? –
我試過...並沒有工作...我只調用ShowDialog(0)這是DatePicker對話框.. – Shermano