所以从你的解释,你想创建一个日期间隔选择器只需点击一个按钮。 通过使用类比从你的榜样,你必须做到以下几点:
// 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