Принуждение открытой Программируемой клавиатуры

Я пытаюсь вызвать Программируемую клавиатуру, открытую в Действии и захватить все, что вводится, поскольку я хочу обработать вход сам, у меня нет EditText. В настоящее время я пробовал это, но это не работает. Я хотел бы Мягкий Keyboardto, открытый ниже mAnswerTextView (Примечание: это - TextView не EditText).

    InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    // only will trigger it if no physical keyboard is open
    mgr.showSoftInput(mAnswerTextView, InputMethodManager.SHOW_IMPLICIT);
  1. как я вызываю открытую Программируемую клавиатуру
  2. Как я болтаю все, что вводится так, чтобы я мог обработать каждый символ. Я хотел бы сбросить каждый символ с Программируемой клавиатуры после того, как я обработал его. т.е., пользователь не должен мочь ввести целые слова в Программируемую клавиатуру.
46
задан jax 19 March 2010 в 18:00
поделиться

1 ответ

Вам, вероятно, понадобится какая-то редактируемая текстовая область, чтобы сфокусироваться. Однако вы, вероятно, можете иметь один невидимый или на прозрачном фоне без курсора. Возможно, вам придется поиграть с настройками фокусировки для обзора.

Используйте TextWatcher для проверки изменений этого EditText с помощью addTextChangedListener , или, если вам нужен перехватчик еще более низкого уровня, установите ключевой прослушиватель textview с его методом setOnKeyListener (). См. Документацию KeyListener .

Используйте этот вызов, чтобы принудительно открыть мягкую клавиатуру:

((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE))
    .showSoftInput(myEditText, InputMethodManager.SHOW_FORCED);

и этот, чтобы закрыть ее:

((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE))
    .hideSoftInputFromWindow(myEditText.getWindowToken(), 0);

обратите внимание, что это действительно не рекомендуется - открывать клавиатуру принудительно - это немного беспорядочно. Какой у вас вариант использования, который действительно требует от вас ввода пользовательского ввода без обычного поля редактирования и требует, чтобы пользовательский ввод вводился ключ за ключом, не возвращая его обратно?

15
ответ дан 26 November 2019 в 20:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: