teclado studio pulsar programáticamente pantalla ocultar mostrar fuera edittext developer como cerrar abrir android android-softkeyboard soft-keyboard

studio - ¿Ocultar teclado suave en Keypress Hecho en Android?



ocultar teclado android in fragment (5)

Debería echar un vistazo a setOnEditorActionListener () para el EditText:

Configure un oyente especial para que se llame cuando se realiza una acción en la vista de texto. Se llamará cuando se presione la tecla Intro, o cuando el usuario seleccione una acción suministrada al IME.

Estoy luchando con el botón hecho en el teclado suave. No puedo obtener el teclado suave. Presione la tecla para ocultar el teclado. Desde otro botón, funciona perfectamente con

imm.hideSoftInputFromWindow(editText.getApplicationWindowToken(), 0);

pero el onKeyListener no funciona de la manera que quiero. Cuando presiono el texto de edición, aparece el teclado virtual y su contenido se borra de los caracteres.

¡Gracias por su atención!

El main.xml:

<EditText android:id="@+id/answer" android:layout_gravity="center_horizontal" android:textSize="36px" android:inputType="phone" android:minWidth="60dp" android:maxWidth="60dp" />

El archivo Java:

private EditText editText; //... editText = (EditText)findViewById(R.id.answer); editText.setOnClickListener(onKeyboard); editText.setOnKeyListener(onSoftKeyboardDonePress); //... // method not working: private View.OnKeyListener onSoftKeyboardDonePress=new View.OnKeyListener() { public boolean onKey(View v, int keyCode, KeyEvent event) { if (event.getKeyCode() == KeyEvent.FLAG_EDITOR_ACTION) { // code to hide the soft keyboard imm = (InputMethodManager) getSystemService( Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(editText.getApplicationWindowToken(), 0); } return false; } }; private View.OnClickListener onKeyboard=new View.OnClickListener() { public void onClick(View v) { editText.setText(""); } };

El método de trabajo usando un botón (en el mismo archivo java):

private View.OnClickListener onDone=new View.OnClickListener() { public void onClick(View v) { //.... // code to hide the soft keyboard imm = (InputMethodManager) getSystemService( Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(editText.getApplicationWindowToken(), 0); } };

Editar: Cuando presiono la tecla no "9" el teclado se esconde. Eso es extraño.


Se cambió la instrucción if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER) a if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER) hizo funcionar con el atributo de android:inputType="phone" .


Use android: imeOptions = "actionDone", así:

<EditText ... android:imeOptions="actionDone" />


Use el código de abajo con android:imeOptions="actionDone" su trabajo para mí.

<EditText android:id="@+id/et_switch_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="Name" android:imeOptions="actionDone" android:inputType="textPersonName" />


InputMethodManager inputManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.toggleSoftInput(0, 0);

siendo el contexto tu actividad.