#java #android #android-softkeyboard
#java #Android #android-программная клавиатура
Вопрос:
Я видел много сообщений на эту тему, но ни одно из них не сработало.
У меня есть EditText
, который используется последним для выполнения запроса.
Для меня важно знать, является ли язык английским или ивритом.
Я перепробовал много решений, таких как:
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
InputMethodSubtype ims = imm.getCurrentInputMethodSubtype();
String locale = ims.getLocale();
где возвращает «».
Также пытался использовать Locale, но он возвращает язык устройства, а не язык текущей клавиатуры.
Есть ли какой-нибудь способ сделать это вместо проверки каждой буквы?
if ((c >= 'a' amp;amp; c <= 'z') || (c >= 'A' amp;amp; c <= 'Z')) {
//english letter
}
Спасибо
Комментарии:
1. «Есть ли какой-нибудь способ сделать это вместо проверки каждой буквы?» — нет. В конце концов, пользователь может изменять языки для каждого символа, используя столько языков, сколько захочет пользователь (включая языки, которые не являются ни английским, ни ивритом). Пользователь также может вводить смайлики.
Ответ №1:
Единственный способ на 100% убедиться в том, какой язык соответствует введенному тексту, — это проверить каждую букву. Нет никакого ограничения на то, какой язык вводит пользователь, или если у пользователя даже был язык, который вы хотите в своих локали.
P.S: К сожалению, Android не имеет API для ограничения локали, хотя он есть на iOS, так что, надеюсь, однажды он появится на Android