Android,从.setButton()方法中获取DatePickerDialog的值?

时间:2015-02-11 09:40:46

标签: android datepicker android-datepicker

我有一个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_POSITIVEonDateSet之前被调用,但我不确定是否总是如此。如果存在这样的事情,我宁愿使用内置调用来收集选择器中设置的值。

提前致谢!

1 个答案:

答案 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();
               ....
            }
        }