Android:如何确定使用哪个键盘

时间:2012-02-25 11:22:51

标签: android keyboard

我想做一些简单的事情,但是,因为这是艰巨的任务。 我有EditText控件。我想要做的是当我停止输入它时(onFocusChanged,focus = false)我想记录键盘的状态 - 正在使用哪种语言,下次如果我看到键盘被'记住'我想要按原样设置它。

我试图调查IMF和IME,但这些只给我一些信息,但没有'set'选项,所以这不是我需要的。 另一方面有KeyboardView - 有一些功能可以帮助(getKeyboard,setKeyboard),但我不知道如何获取KeyboardView!

为什么我需要这个?我有2个EditText,每个语言中的语言都不同,因此用户必须自己更改语言,这非常令人恼火,因为输入迭代次数很多。如果只记得使用过的键盘......:)

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

public InputMethodInfo getCurrentImeInfo(){
    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    List<InputMethodInfo> mInputMethodProperties = imm.getEnabledInputMethodList();

    final int n = mInputMethodProperties.size();
    for (int i = 0; i < n; i++) {

        InputMethodInfo imeInfo = mInputMethodProperties.get(i);

        if (imeInfo.getId().equals(Settings.Secure.getString(getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD))) {

            return imeInfo;
        }
    }
    return null;
}