После ввода EditText, как заставить клавиатуру исчезнуть - PullRequest
7 голосов
/ 30 января 2011

Из руководства по Android:

pass_text.setOnKeyListener(new OnKeyListener() {
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        // If the event is a key-down event on the "enter" button
        if ((event.getAction() == KeyEvent.ACTION_DOWN)
                && (keyCode == KeyEvent.KEYCODE_ENTER)) {
            // Perform action on key press
            return true;
        }
        return false;
        }
    });
}

при нажатии на EditText, на клавиатуре появляется клавиатура.Я хочу знать после Enter.Как сделать клавиатуру из рамки, кроме кнопки «Назад».

enter image description here

Спасибо

Ответы [ 4 ]

27 голосов
/ 30 января 2011

Попробуйте следующее

Для действия:

InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.hideSoftInputFromWindow(curEditText.getWindowToken(), 0);

Для фрагмента:

InputMethodManager mgr = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
        mgr.hideSoftInputFromWindow(mEditText.getWindowToken(), 0);
15 голосов
/ 30 января 2011

дает поле EditText с атрибутом android:imeOptions="actionDone", при этом кнопка «Ввод» изменится на кнопку «Готово», которая закроет клавиатуру.

1 голос
/ 01 августа 2013

Рабочий способ избавиться от программной клавиатуры состоит в том, чтобы отключить, а затем включить поле TextEdit в событии Return-key, нажатия кнопки или в любом другом месте. Например:

....
pass_text.setEnabled(false);
pass_text.setEnabled(true);
....
0 голосов
/ 20 февраля 2017

Я думаю, мы можем просто добавить этот атрибут в наш EditText:

андроид: inputType = "текст"

Это автоматически заставит текст находиться в одной строке, и поэтому, когда мы нажимаем Enter, клавиатура исчезает.

...