¿Ocultar el teclado suave al presionar la tecla Listo en Android?
Estoy luchando con el botón Listo en el teclado virtual. No puedo obtener el teclado suave. Presione la tecla Listo para ocultar el teclado. Desde otro botón, funciona perfectamente con
imm.hideSoftInputFromWindow(editText.getApplicationWindowToken(), 0);
pero onKeyListener no funciona como yo quiero. Cuando presiono editText, 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 oculta. Eso es extraño.