Использование атрибута Android:Digits для ограничения символов останавливает действие следующей кнопки

У меня есть несколько полей EditText в приложении для Android, и я использовал android:digits, чтобы остановить ввод недопустимых символов.

например: android:digits="@string/validchars" (где «validchars» — строковый ресурс всех допустимых символов — например, AZ, 0–9 и некоторые знаки препинания)

Проблема в том, что если пользователь нажимает клавишу ENTER на программной следующее поле, но так как я добавил бит android:digits, это перестало работать. Я пытался добавить \n к validchars, но это просто разрешает возврат каретки в текстовых полях с одной строкой (!), Так что не помогает. Я пробовал возиться с imeOptions (добавляя actionNextи т. д.), но это, похоже, тоже не исправляет. Я читал о TextWatchers и InputFilters, но оба они кажутся слишком сложными для того, что я пытаюсь сделать, и бит android:digitsотлично справляется с остановкой недопустимых символов.

У кого-нибудь есть идеи?

Я использую Android SDK версии 8 и ориентируюсь на устройства 2.2 и 2.3.5.

13
задан Vadim Kotov 7 August 2017 в 08:41
поделиться