Android: как определить, какая клавиатура используется - PullRequest
3 голосов
/ 25 февраля 2012

Я хотел бы сделать несколько простых, но, поскольку это приходит трудная задача. У меня есть контроль EditText. То, что я хочу сделать, это когда я перестаю набирать его (onFocusChanged, focus = false). Я хочу записать состояние клавиатуры - какой язык использовался, и в следующий раз, если я увижу, что клавиатура «запомнена», я хочу установите как было раньше.

Я пытался изучить IMF и IME, но они только дают мне некоторую информацию, но без опции 'set', так что это не то, что мне нужно. С другой стороны, есть KeyboardView - есть некоторые функции, которые могут помочь (getKeyboard, setKeyboard), но я не знаю, как получить KeyboardView!

Зачем мне это нужно? У меня есть 2 EditText, язык в каждом из них будет разным, поэтому пользователь должен сам изменить язык, что очень раздражает, так как количество входных итераций велико. Если бы я только мог вспомнить использованную клавиатуру ...:)

Ценю вашу помощь!

1 Ответ

2 голосов
/ 25 февраля 2012
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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...