Мое приложение использует DatePicker
.Когда я открываю DatePicker
и нажимаю Done
, выбирается дата.Проблема в том, что дата также выбирается, если пользователь нажимает, кроме DatePicker
.Смотрите здесь:
Listener
должен реагировать только при нажатии Done Button
.Но он также реагирует, если щелкнуть по окружающему (красному) значку DatePicker
.
Мой вопрос:
Как мне предотвратить это?
Если выхотите увидеть код, пожалуйста, оставьте комментарий.
Я уже пробовал это: Как обрабатывать диалог выбора даты, чтобы не устанавливать в тексте редактирования при нажатии вне диалогового окна Android?
Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);
//DatePickerDialog mDatePicker;
DatePickerDialog mDatePicker;
mDatePicker = new DatePickerDialog(this, AlertDialog.THEME_DEVICE_DEFAULT_LIGHT, new DatePickerDialog.OnDateSetListener() {
private boolean fired;
public void resetFired(){
fired = false;
}
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
if(view.isShown()){
if(fired){
setDate(year, monthOfYear, dayOfMonth);
//ListView erneuern
adapter.notifyDataSetChanged();
return;
}
fired = true;
}
}
}, mYear, mMonth, mDay);
mDatePicker.setCanceledOnTouchOutside(true);
mDatePicker.setTitle("Wähle ein Datum");
mDatePicker.show();
Но это не работает правильно.Щелчок на фоновой ошибке решается.Но теперь Done Button
перестает работать.