あなたの説明から、ボタンを1回クリックするだけで日付間隔ピッカーを作成したいと考えています。 あなたの例から類推を使用することにより、次の操作を行う必要があります:あなたはあなたのアプリケーションを実行すると
// 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();
}
};
は、二ピッカーが最初に終了した後に現れます。
後で、誰もが日付間隔ピッカーを作成するためのより良い方法を知っている場合はお知らせください ...、このコードを最適化するカスタムピッカーなどを追加することができます!
なぜonClick()を2回呼び出すかわかりません。あなたがアクションを2回実行したいだけなら、それをonClick()のループに入れてください...あなたはその質問の意味を明確にすることができますか? –
私は試してみました...うまくいきません...私はshowDialog(0)を呼び出すのはDatePickerダイアログです。 – Shermano