Đây là cách tôi triển khai nút "Xóa" trong ứng dụng của mình. Khi người dùng nhấp vào Xóa, giá trị năm/tháng/ngày là tất cả 0. Bạn có thể sử dụng onDateSet() trong ứng dụng của mình cho cả nút Đặt và nút Xóa theo cách này.
Tôi đã tham chiếu mã nguồn Android (\ frameworks \ base \ core \ java \ android \ app \ DatePickerDialog.java).
Tôi cũng đã sử dụng trợ giúp của esilver.
public class DatePickerDialogPlus extends DatePickerDialog {
private final DatePicker mDatePicker;
private final OnDateSetListener mCallBack;
/**
* @param context The context the dialog is to run in.
* @param callBack How the parent is notified that the date is set.
* @param year The initial year of the dialog.
* @param monthOfYear The initial month of the dialog.
* @param dayOfMonth The initial day of the dialog.
*/
public DatePickerDialogPlus(Context context, OnDateSetListener callBack,
int year, int monthOfYear, int dayOfMonth) {
super(context, 0, callBack, year, monthOfYear, dayOfMonth);
mCallBack = callBack;
Context themeContext = getContext();
setButton(BUTTON_POSITIVE,
themeContext.getText(R.string.datePicker_setButton), this);
setButton(BUTTON_NEUTRAL,
themeContext.getText(R.string.datePicker_clearButton), this);
setButton(BUTTON_NEGATIVE,
themeContext.getText(R.string.datePicker_cancelButton), null);
setIcon(0);
setTitle(R.string.datePicker_title);
LayoutInflater inflater = (LayoutInflater)
themeContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.date_picker_dialog, null);
setView(view);
mDatePicker = (DatePicker) view.findViewById(R.id.datePicker);
mDatePicker.init(year, monthOfYear, dayOfMonth, this);
}
@Override
public void onClick(DialogInterface dialog, int which) {
if (mCallBack != null) {
if (which == BUTTON_POSITIVE) {
mDatePicker.clearFocus();
mCallBack.onDateSet(mDatePicker, mDatePicker.getYear(),
mDatePicker.getMonth(), mDatePicker.getDayOfMonth());
} else if (which == BUTTON_NEUTRAL) {
mDatePicker.clearFocus();
mCallBack.onDateSet(mDatePicker, 0, 0, 0);
}
}
}
}
cảm ơn bạn cho mã này, nhưng trong ICS nút rõ ràng và thiết lập không làm việc đúng luôn – Jamshid