在edittext中检测语言

问题描述

我看到了很多有关该主题的帖子,但没有一个起作用。

我有一个EditText,后者可用于执行查询

对我来说,重要的是要知道语言是英语还是希伯来语。

我尝试了许多解决方案,例如:

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
InputMethodSubtype ims = imm.getCurrentInputMethodSubtype();
String locale = ims.getLocale();

where返回“”。

也尝试使用语言环境,但是它返回设备的语言,而不是当前键盘的语言。

有什么方法可以代替检查每个字母吗?

if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {
  //english letter
}

谢谢

解决方法

唯一确保100%确认输入文本是Locale的方法是检查每个字母。用户输入的语言环境无限制,甚至在用户的语言环境中也没有您想要的语言时就可以使用。

P.S:可惜,Android没有任何限制语言环境的API,尽管它在iOS上,所以希望有一天它将到达Android