如何相互更改datepicker的按钮......?

时间:2012-04-13 20:07:33

标签: android datepicker

我有一个日期选择器,我想要交换设置和取消按钮。

当我尝试时,两个按钮仅用于设置。

如何避免这种情况和互换按钮。

这是我的代码。

@Override
    protected Dialog onCreateDialog(int id) {
        Calendar c = Calendar.getInstance();
        int cyear = c.get(Calendar.YEAR);
        int cmonth = c.get(Calendar.MONTH);
        int cday = c.get(Calendar.DAY_OF_MONTH);
        switch (id) {
        case DATE_DIALOG_ID:
            final DatePickerDialog datePicker = new DatePickerDialog(this,
                    mDateSetListener, cyear, cmonth, cday);
            datePicker.setButton(DatePickerDialog.BUTTON_NEGATIVE,
                    this.getString(R.string.set), datePicker);
            datePicker.setButton(DatePickerDialog.BUTTON_POSITIVE,
                    this.getString(R.string.cancel), datePicker);           
            return datePicker;
        }
        return null;
    }

    private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                int dayOfMonth) {
            selectedDay = Integer.parseInt(String.valueOf(dayOfMonth));
            selectedMonth = Integer.parseInt(String.valueOf(monthOfYear + 1));
            selectedYear = Integer.parseInt(String.valueOf(year));
            String date_selected = String.valueOf(monthOfYear + 1) + " /"
                    + String.valueOf(dayOfMonth) + " /" + String.valueOf(year);

            textView.setText(date_selected);

        }
    };

提前致谢...!

1 个答案:

答案 0 :(得分:2)

setButton()方法的第三个参数是将处理按钮按下的侦听器(DialogInterface.OnClickListener)。如果将DatePickerDialog作为此参数传入,则按下该按钮将在初始化Dialog时调用附加的侦听器,在本例中为mDateSetListener。两个按钮都调用“set”函数,因为您将datePicker作为侦听器传递给两个按钮。尝试创建一个新的DialogInterface.OnclickListener,它调用datePicker.dismiss()并在设置肯定按钮时将其用作第三个参数。

相关问题