La tecla Eliminar no funciona
He añadido setOnKeyListener para Enter keyevent. Sin embargo, después de agregar setOnKeyListener, la tecla delete (backspace) no funciona. Cuando quité el setOnKeyListener, la llave de la cancelación está trabajando muy bien.
¿Cómo arreglar la clave de borrado que funciona bien?
final EditText edittext = (EditText) findViewById(R.id.editText1); edittext.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(View arg0, int arg1, KeyEvent event) { // TODO Auto-generated method stub if (event != null&& (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) { InputMethodManager in = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); in.hideSoftInputFromWindow(edittext .getApplicationWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); applySearch(); } return true; } });
Si devuelve True
, está manejando todas las claves. Prueba esto:
if (event != null && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) { //something here return true; } //else return false;
Android: Problema con reemplazar onKeyListener por un botón
De acuerdo con la documentación onKey
devuelve True
si el oyente ha consumido el evento, false en caso contrario. En tu caso:
@Override public boolean onKey(View arg0, int arg1, KeyEvent event) { ... return true; // Try to return false instead }
Cuando el método devuelve claves true
no se procesan y el retroceso no funciona.