Мне нужен способ определить, был ли изменен EditText пользователем, который набрал что-то или приложение изменило текст программно. Любой стандартный способ сделать это? Думаю, я всегда мог бы что-то взломать, как отменить TextWatcher до setText()
и снова установить его обратно, но должен быть лучший способ сделать это... правильно?
Я попытался проверить, сфокусировано ли EditText в TextWatcher, но это мало помогло, так как EditTexts фокусируется "полуслучайно" в любом случае при прокрутке...
Фон
У меня есть ListView с EditTexts в каждом элементе listitem. Я проанализировал основную проблему хранения значений для EditTexts для повторного использования при прокрутке пользователя.
У меня также есть TextWatcher, который суммирует значения во всех EditTexts и отображает сумму, когда пользователь редактирует содержимое любого из EditTexts.
Проблема заключается в том, что когда я прокручиваю список, и мой пользовательский адаптер повторно вводит сохраненные значения в EditTexts на bindView()
, что также вызывает метод TextWatchers afterTextChanged()
, что приводит к задержке прокрутки, срабатывает функция "вверх".