Просто интересно, как вы справляетесь со следующей проблемой: результат вычисляется в зависимости от выбранных элементов двух счетчиков. Для управления пользовательским интерфейсом, то есть пользователь выбирает новый элемент в одном из счетчиков, я устанавливаю прослушиватель, используя setOnItemSelectedListener
для счетчика в моем методе действия onCreate()
.
Теперь: это работает, конечно, хорошо. Работа слушателя состоит в том, чтобы запустить новый расчет результата.
Проблема: поскольку я перехватываю onPause()
onResume()
, чтобы сохранить / восстановить последнее состояние, я получил метод, который устанавливает выбранный элемент этих двух счетчиков программно, как здесь:
startSpinner.setSelection(pStart);
destSpinner.setSelection(pDest);
Эти два вызова также вызывают слушателей! Мой метод вычисления для результата плюс уведомление о новом наборе результатов вызывается здесь дважды!
Глупый прямой подход для этого состоит в том, чтобы иметь логическую переменную , отключающую независимо от того, что слушатель делает внутри, устанавливая его перед установкой выбранных элементов и сбрасывая впоследствии.
Хорошо. Но есть ли лучший метод ??
Я не хочу, чтобы слушатели вызывались кодом - действиями, только действиями пользователя! : - (
Как ты это делаешь?
Спасибо!