Android:更改DatePickerDialog/TimePickerDialog中的按钮文本
我有一个约会记录。在默认配置中,它可以正常工作Android:更改DatePickerDialog/TimePickerDialog中的按钮文本,android,dialog,datetimepicker,timepicker,datepickerdialog,Android,Dialog,Datetimepicker,Timepicker,Datepickerdialog,我有一个约会记录。在默认配置中,它可以正常工作 DatePickerDialog dialog = new DatePickerDialog( view.getContext(), new OnDateSetListener() { @Override public void onDateSet(DatePicker picker, int year, int monthOfYear, int dayOfMonth) {
DatePickerDialog dialog = new DatePickerDialog(
view.getContext(),
new OnDateSetListener() {
@Override
public void onDateSet(DatePicker picker, int year, int monthOfYear, int dayOfMonth) {
// do something
}
},
startDate.getYear(),
startDate.getMonth() - 1,
startDate.getDay()
);
现在我想更改按钮的文本。我尝试使用以下代码:
dialog.setButton(DatePickerDialog.BUTTON_POSITIVE, "New Label", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// do something
}
});
现在我的问题是从datepicker控件获取日期。单击按钮不会调用DateSetListener。如何通过DateSetListener获取日期?
另一种获得日期的可能性是
public void onClick(DialogInterface dialog, int which) {
int year = ((DatePickerDialog) dialog).getDatePicker().getYear();
int month = ((DatePickerDialog) dialog).getDatePicker().getMonth();
int day = ((DatePickerDialog) dialog).getDatePicker().getDayOfMonth();
}
但这似乎是一种不必要的复杂方式
对于TimePickerDialog,这种替代方法将不起作用,因为我无法获得timepicker控件。因此,我需要使用TimeSetListener,但我找不到这种可能性(比如datepicker)
感谢您的回复。我相信这将在DatePicker上起作用,它在TimePicker中对我起作用: 听众:
TimePickerDialog.OnTimeSetListener mTimeSetListenerIni =
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(android.widget.TimePicker view,
int hourOfDay, int minute) {
Log.i("","Initial: "+hourOfDay+":"+minute);
}
};
TimePickerDialog yourFragment = new TimePickerDialog(this, mTimeSetListenerIni, hour, minute, true);
yourFragment.setButton(DialogInterface.BUTTON_POSITIVE, "OK", yourFragment);
yourFragment.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel", yourFragment);
创建DatePickerDialog后,调用此行
datePickerDialog.setButton(DialogInterface.BUTTON_POSITIVE, "Your custom text", datePickerDialog);
注意:只需使用它的对话框,而无需新建click listener