Как предотвратить появление программной клавиатуры? - PullRequest
5 голосов
/ 05 октября 2011

У меня есть собственная клавиатура в моем приложении, поэтому я хочу постоянно скрывать программную клавиатуру (в определенных действиях и диалогах). Я экспериментировал с двумя вариантами:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

Этот код предотвращает появление клавиатуры в начале, но когда я нажимаю на текстовое поле, клавиатура все равно появляется.

InputMethodManager imm = (InputMethodManager)getContext().getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);

Этот код скрывает клавиатуру, но не предотвращает ее появление.

ПОЖАЛУЙСТА, ПОМОГИТЕ!

1 Ответ

8 голосов
/ 06 октября 2011

Наконец разобрался!

Я использовал

public void supressKeyboard() {
    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 
}

для действий, где я хочу отменить клавиатуру (вы можете поместить ее в общее действие, от которого наследуются все другие действия)

Но это не предотвратит появление клавиатуры при нажатии на текстовое поле EditText.Я использовал событие onTouch для текстового поля:

@Override
public boolean onTouchEvent(MotionEvent event) {
    return true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...