首页 > 解决方案 > 在edittext中检测语言

问题描述

我看到很多关于这个主题的帖子,但没有一个有效。

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

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

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

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

哪里返回“”。

还尝试使用 Locale 但它返回设备的语言而不是当前键盘的语言。

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

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

谢谢

标签: javaandroidandroid-softkeyboard

解决方案


100% 确定输入文本的区域设置的唯一方法是检查每个字母。没有限制用户输入的区域设置,或者用户是否在他们的区域设置中拥有您想要的语言。

PS:遗憾的是,Android 没有任何 API 来限制 Locale,但它在 iOS 上,所以希望有一天它会到达 Android


推荐阅读