android - samsung - quitar texto predictivo huawei p20
¿Cómo borrar el foco y eliminar el teclado en Android? (5)
Tengo un control EditText. Si lo toco, el teclado se abrirá, pero cuando presiono "enter / ok / return", el control EditText todavía tiene el foco y el teclado hacia arriba.
¿Cómo cierro el softkeyboard y le quito el foco?
Asegúrese de que su XML EditText tiene:
android:id="@+id/myEditText"
android:imeOptions="actionDone"
Luego, configure el oyente en su EditText (con Kotlin y desde un fragmento):
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
})
En el archivo XML de diseño, especifique una imeOption en su EditText:
android:imeOptions="actionGo"
A continuación, agregue un detector de acciones a su EditText en el archivo java de la Actividad
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;
}
});
Donde mYourEditText es un objeto EditText
Puedes intentar hacer SetFocus()
en otro elemento de tu diseño.
Si está hablando del botón "enter / ok / return" en el teclado, es posible que tenga que configurar un KeyListener
en el control EditText
para saber cuándo establecer SetFocus()
en otro elemento.
private void hideDefaultKeyboard() {
activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
//you have got lot of methods here
}
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editTextField.getWindowToken(), 0);