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