У меня есть элемент управления EditText.
Если я нажму на него, появится всплывающее меню softkey, когда я нажму "enter/ok/return", а затем элемент управления EditText будет иметь фокус и клавиатуру вверх.
Как закрыть панель инструментов и удалить из нее фокус?
Как очистить фокус и удалить клавиатуру на Android?
Ответ 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
})