определение языка в edittext

#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