Я разрабатываю приложение, в котором у меня есть компонент TextEdit, в который пользователь может вводить числовое значение. Это значение представляет собой денежную стоимость, поэтому - как часть потери фокуса - приложение должно обновить введенную строку в этом поле и отформатировать ее в некотором стандартизированном формате, т. е. оно должно поставить перед значением префикс определенного кода валюты и отформатировать значение в соответствии с две цифры после десятичной точки, группировка цифр в группы по три и т. д.
Поэтому я написал прослушиватель фокуса для этого поля, и когда он вызывается с аргументом «hasFocus=false», я я анализирую введенное числовое значение и переформатирую его соответствующим образом. Мои выходные данные отладки показывают, что прослушиватель вызывается, и строка, которую я использую для последующего вызова .setText();, отформатирована правильно. Но по какой-то странной причине это представление не обновляется на экране, то есть отображаемый текст не изменяется соответствующим образом.
У меня нет объяснения, почему Android не обновляет визуальные эффекты соответствующим образом, когда я делаю setText(...) в видимом EditText. Поскольку это не сработало, я попытался вызвать .refreshDrawableState() и .requestLayout() после этого вызова .setText(...), но это ничего не изменило. .
Теперь я не понимаю, что здесь происходит. Есть идеи, почему и как это может произойти?
В случае, если это поможет: я использую библиотеку AppCompat, а компонент определен как android.widget.TextView, когда напечатанный в журнале, он фактически сообщается как androidx.appcompat.widget.AppCompatEditText. Может ли это повлиять или сыграть здесь роль?
Подробнее здесь: https://stackoverflow.com/questions/790 ... ate-screen
Android: TextEdit.setText(...) не обновляет экран? ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение