Ahora manejo la tecla enter en mis campos EditText usando un onEditorActionListener y mirando el Action ID para IME_NULL. Funciona bien para todos mis usuarios excepto uno. Ella tiene un Xperia Arc.Manejar la tecla Enter en EditText en diferentes dispositivos
TextView.OnEditorActionListener keyListener = new TextView.OnEditorActionListener(){
public boolean onEditorAction(TextView view, int actionId, KeyEvent event) {
if(actionId == EditorInfo.IME_NULL){
if(((EditText)findViewById(view.getId())) == ((EditText)findViewById(R.id.etUser))){
((EditText) findViewById(R.id.etPass)).requestFocus();
}
if(((EditText)findViewById(view.getId())) == ((EditText)findViewById(R.id.etPass))){
logon();
}
}
return true;
}
};
Después de aprender sobre el tema, he intentado otro enfoque mediante el uso de un onKeyListener y buscando el ACTION_DOWN evento clave a continuación, comprobar si el código clave que coincidía KEYCODE_ENTER.
EditText etUserName = (EditText) findViewById(R.id.etUser);
etUserName.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View view, int keyCode, KeyEvent event){
if (event.getAction() == KeyEvent.ACTION_DOWN){
switch (keyCode)
{
case KeyEvent.KEYCODE_DPAD_CENTER:
case KeyEvent.KEYCODE_ENTER:
if(((EditText)findViewById(view.getId())) == ((EditText)findViewById(R.id.etUser))){
((EditText) findViewById(R.id.etPass)).requestFocus();
}
return true;
default:
break;
}
}
return false;
}
});
Sin duda sobre eso tampoco. Estoy perdido ahora. Hay muchas aplicaciones que manejan la tecla Intro bien. ¿Qué están haciendo de manera diferente?
¿Ha encontrado alguna vez una solución alternativa a este error? De hecho, necesito interceptar la tecla Enter, no solo mantener el texto en una fila. – pgsandstrom