Sto utilizzando un DatePicker in Android per consentire all'utente di scegliere la data. Voglio che faccia una cosa se l'utente sceglie una data e la imposta (ho funzionato correttamente) e poi cancella un certo campo di testo se l'utente preme il pulsante annulla sul datepicker (apri il datepicker ma poi annulla di esso).Come rendere un listener per un pulsante di annullamento di datepickers in Android?
Il modo in cui ho cercato è facendo una
private DatePickerDialog.OnCancelListener mDateCancelListener =
new DatePickerDialog.OnCancelListener() {
public void onCancel(DialogInterface dialog) {
timeClear(); //method that clears text field
}
};
poi faccio
TimePickerDialog timeDialog = new TimePickerDialog(this,
mTimeSetListener,
c.get(Calendar.HOUR),
c.get(Calendar.MINUTE),
false);
timeDialog.setOnCancelListener(mTimeCancelListener);
per collegare l'ascoltatore.
Il mio problema è che l'ascoltatore funziona se l'utente preme il pulsante Indietro, ma non se preme il pulsante Annulla. Ho provato ad usare un ascoltatore di licenziamenti, e questo funziona, a parte il fatto che si spegne anche se ho impostato o cancellato il DatePicker!
Cosa devo fare in modo che qualcosa vada se e solo se premo il pulsante Annulla sul mio Datepicker?
Sto provando a fare la stessa identica cosa ma con il selezionatore di date. Nella soluzione proposta di seguito, l'app si arresta in modo anomalo perché .getButton (TimePickerDialog.BUTTON_NEGATIVE) restituisce null. Qualcuno là fuori ha una soluzione a questo? –
Controlla questo [1]: http://stackoverflow.com/questions/2928902/can-we-get-cancel-click-listerner-of-datepicker-dialog – W00di