Подтвердить что ты не робот

Как очистить фокус и удалить клавиатуру на Android?

У меня есть элемент управления EditText. Если я нажму на него, появится всплывающее меню softkey, когда я нажму "enter/ok/return", а затем элемент управления EditText будет иметь фокус и клавиатуру вверх.
Как закрыть панель инструментов и удалить из нее фокус?

4b9b3361

Ответ 1

Вы можете попробовать сделать SetFocus() в другом элементе вашего макета.

Если вы говорите о кнопке "enter/ok/return" на самой клавиатуре, вам может понадобиться настроить KeyListener в элементе управления EditText, чтобы узнать, когда на SetFocus() на другом элементе.

Ответ 2

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

Ответ 3

В XML файле макета укажите imeOption в вашем EditText:

android:imeOptions="actionGo"

Затем добавьте прослушиватель действий в ваш EditText в java файле Activity

    mYourEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if (actionId == EditorInfo.IME_ACTION_GO) {
                // hide virtual keyboard
                InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(mYourEditText.getWindowToken(), 0);
                return true;
            }
            return false;
        }
    });

Где mYourEditText - объект EditText

Ответ 4

private void hideDefaultKeyboard() {
    activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
   //you have got lot of methods here
}

Ответ 5

Убедитесь, что у вашего XML файла EditText:

android:id="@+id/myEditText"    
android:imeOptions="actionDone"

Затем установите прослушиватель в свой EditText (с помощью Kotlin и из фрагмента):

myEditText.setOnEditorActionListener({ v, actionId, event ->
            if (actionId == EditorInfo.IME_ACTION_DONE) {
                myEditText.clearFocus()
                val imm = activity.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
                imm.hideSoftInputFromWindow(view!!.windowToken, 0)    
            }
            false
        })