Estoy luchando con el botón hecho en el teclado virtual. No puedo presionar la tecla suave del teclado Done para ocultar el teclado. De otro botón, funciona perfectamente conHide Soft Keyboard on Done ¿Teclea la tecla en Android?
imm.hideSoftInputFromWindow(editText.getApplicationWindowToken(), 0);
pero el onKeyListener no funciona como yo quiero. Cuando presiono EditText, aparece el teclado virtual y su contenido se borra de los caracteres.
¡Gracias por escuchar!
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 mediante 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 "9", el teclado se esconde. Eso es extraño.
¡Funciona como un encanto! :) –
no funciona para mí, realmente extraño en la llamada programación de Android. –
Cuando editext está en una vista de desplazamiento, se equivoca. –