2011-07-20 122 views
0

我需要一點幫助。
在我的應用程序中,用戶需要選擇一個日期間隔(當按下一個按鈕時),並且我不知道如何使用日期選擇器來執行此操作!Android Date Picker幫助!

我正在追蹤這個例子:http://developer.android.com/resources/tutorials/views/hello-datepicker.html,但我對這個教程兩個問題...

1)我怎樣才能做到這(在的情況下我有兩個EditText上稱爲DatePickerDialog.OnDateSetListener onClick事件當用戶點擊其中一個,該應用程序顯示日期選擇器對話框)

2)如何在用戶按下一個按鈕後調用兩次onClick?

tnhx! 對不起英語!

+0

我不確定你爲什麼要打onClick()兩次?如果你想執行一個動作兩次,然後把它放在onClick()循環中......也許你可以澄清你的意思是什麼問題? –

+0

我試過...並沒有工作...我只調用ShowDialog(0)這是DatePicker對話框.. – Shermano

回答

0

所以從你的解釋,你想創建一個日期間隔選擇器只需點擊一個按鈕。 通過使用類比從你的榜樣,你必須做到以下幾點:

// 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請告訴我們!