Как заставить английскую клавиатуру в Android EditText - PullRequest
5 голосов
/ 01 декабря 2010

Я знаю, как форсировать числа, тексты и т. Д., Но есть ли у меня флажок или опции IME, чтобы заставить EditText принимать только определенный язык, например английский, в случае, если мои поля БД могут принимать только английские символы? конечно, я могу проверять и уведомлять пользователей о неправильном вводе, но это не совсем удобно для пользователя ...

Реализация собственного фильтра в EditText также возможна, но я не уверен, что это заставит раскладку клавиатуры быть на том языке, который мне нужен.

Есть идеи?

Ответы [ 3 ]

6 голосов
/ 18 августа 2018

Только для английского символа:

android:digits="abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ"

С символами, которые вы определяете в строке цифр:

android:digits="abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ !@#$%^*?"
3 голосов
/ 07 апреля 2018

Вы можете использовать flagForceAscii или EditorInfo.IME_FLAG_FORCE_ASCII.Флаг есть на опциях IME.Таким образом, в XML вы можете поместить этот атрибут в EditText, imeOptions="flagForceAscii"

Это, конечно, влияет только на начальное состояние клавиатуры.https://developer.android.com/reference/android/view/inputmethod/EditorInfo.html#IME_FLAG_FORCE_ASCII

0 голосов
/ 01 декабря 2010

Вы, вероятно, должны фильтровать ввод в любом случае. Принудительное использование английской клавиатуры не заставляет пользователя использовать только английские буквы. Пользователь все еще может долго нажимать символ или иметь неанглийскую аппаратную клавиатуру.

Вы можете прослушивать события изменения текста и отклонять все символы, которые не были приняты вашей БД в этот момент.

...