我有一个日期选择器,我想要交换设置和取消按钮。
当我尝试时,两个按钮仅用于设置。
如何避免这种情况和互换按钮。
这是我的代码。
@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);
}
};
提前致谢...!
答案 0 :(得分:2)
setButton()方法的第三个参数是将处理按钮按下的侦听器(DialogInterface.OnClickListener)。如果将DatePickerDialog作为此参数传入,则按下该按钮将在初始化Dialog时调用附加的侦听器,在本例中为mDateSetListener。两个按钮都调用“set”函数,因为您将datePicker作为侦听器传递给两个按钮。尝试创建一个新的DialogInterface.OnclickListener,它调用datePicker.dismiss()并在设置肯定按钮时将其用作第三个参数。