我有一个DatePickerDialog,我用以下方式调用它:
DatePickerDialog dialog = new DatePickerDialog(EditActivity.this, mDateSetListener, 2015, 1, 10);
dialog.setButton(
DialogInterface.BUTTON_NEGATIVE, "Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
if (which == DialogInterface.BUTTON_NEGATIVE) {
}
}
});
dialog.setButton(
DialogInterface.BUTTON_POSITIVE, "OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
if (which == DialogInterface.BUTTON_POSITIVE) {
... Save values from picker here...
}
}
});
dialog.show();
侦听器在哪里:
private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
}
};
onDateSet
方法每次都被称为 ...在OK上,在CANCEL上,在DISMISS上(没有按下按钮)。
我只想在用户按下" OK"以及DialogInterface.BUTTON_POSITIVE
时注册和存储值。它工作得很好,但是有一个内置的方法,使用pickerDialogs来获取值吗?
我现在必须做的是在正面按钮方法中放置一个布尔值:
if(which == DialogInterface.BUTTON_POSITIVE){mOKClicked = true;}
然后在onDateSet
:
if(mOKClicked){... save values...}
据我所知,DialogInterface.BUTTON_POSITIVE
在onDateSet
之前被调用,但我不确定是否总是如此。如果存在这样的事情,我宁愿使用内置调用来收集选择器中设置的值。
提前致谢!
答案 0 :(得分:0)
但是有一个内置的方法,使用pickerDialogs来获取值吗?
是,请致电getDatePicker()
DatePickerDialog
获取所选值:
public void onClick(DialogInterface dialog, int which) {
if (which == DialogInterface.BUTTON_POSITIVE) {
... Save values from picker here...
DatePicker datePicker = dialog.getDatePicker();
int selectedYear=datePicker.getYear();
int selectedMonth=datePicker.getMonth();
....
}
}