6

我正在编写一个使用字典的应用程序。每当用户更改输入语言时,我想在字典之间切换。例如,如果输入语言是英语,则使用英语词典,如果是德语,则使用德语词典。有没有办法设置一个监听器来获得这个改变?我找到的所有答案都是关于语言环境而不是关于输入语言。我不想处理语言环境,语言环境在应用程序中没有影响,输入语言有。(我在 minSDK=7 中开发)

4

2 回答 2

14
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);

InputMethodSubtype ims = imm.getCurrentInputMethodSubtype();

String locale = ims.getLocale();

您可以尝试此代码以获取当前键盘语言区域代码。

于 2013-09-11T06:13:34.087 回答
2

有可能的

imm.getCurrentInputMethodSubtype();

为您返回空值。在这种情况下,您应该像这样检查 android 系统的语言

Locale.getDefault().getLanguage()        ---> en     

否则你会收到 NullPointerException

于 2015-01-20T14:21:01.380 回答