¿Por qué onKey () se llama dos veces?
Estoy usando este código:
public boolean onKey(View v, int keyCode, KeyEvent event) { msg = (EditText)findViewById(R.id.msg); String message = msg.getText().toString(); if(keyCode == 66) { //It's hitting here twice. } return false; };
¿Puede alguien por favor decirme por qué está golpeando dos veces cuando presione entrar?
OnKey se dispara dos veces: la primera vez para la tecla hacia abajo, y la segunda vez para la tecla arriba, por lo que tiene que filtrar:
YOUR_VIEW.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { //This is the filter if (event.getAction()!=KeyEvent.ACTION_DOWN) return true; switch (keyCode) { case KeyEvent.KEYCODE_1 : MakeToast(1); break; case KeyEvent.KEYCODE_2 : MakeToast(2); break; case KeyEvent.KEYCODE_3 : MakeToast(3); break; } return true; } });