This is how I applied the “Clear” button in my application. When the user clicks “Clear”, the values of year / month / day are 0. You can use onDateSet () in your application for the “Install” and “Clear” buttons this way.
I referenced the Android source code (\ frameworks \ base \ core \ java \ android \ app \ DatePickerDialog.java).
I also used esilver help.
public class DatePickerDialogPlus extends DatePickerDialog { private final DatePicker mDatePicker; private final OnDateSetListener mCallBack; 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); } } } }
source share