2009-11-04 20 views
11

Con el teclado físico se puede coger pulsaciones de teclas con un KeyListener, algo así como:Tecla de captura presionada con el teclado virtual en Android?

myEditText.setOnKeyListener(new OnKeyListener() { 
    @Override 
    public boolean onKey(View v, int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_ENTER) { 
      /* do something */ 
     } 
    } 
}); 

¿Alguien sabe cómo hacer esto (o similar) con el teclado virtual?

+3

No le parece que sería una mejor idea de compartir la mejor manera que pueda encontrar, quiero decir que vengo aquí para pedir ayuda, hacer ejercicio la respuesta a su auto y entonces no renunciar a la respuesta, más dar y menos creo que; – Spider

Respuesta

24

Hasta ahora no he encontrado ningún oyente para el teclado virtual en Android. Encontré una solución alternativa, es decir, utilicé el evento TextChanged para recuperar el valor de las teclas ingresadas en Editar texto.

import android.app.Activity; 
    import android.os.Bundle; 
    import android.text.Editable; 
    import android.text.TextWatcher; 
    import android.util.Log; 
    import android.view.KeyEvent; 
    import android.view.View; 
    import android.view.View.OnKeyListener; 
    import android.widget.EditText; 
    import android.widget.TextView; 
    import android.widget.Toast; 

    public class ShowKeypad extends Activity { 
     /** Called when the activity is first created. */ 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 
      EditText emailTxt = (EditText) findViewById(R.id.editText); 

      emailTxt.addTextChangedListener(new TextWatcher() 
      { 
        public void afterTextChanged (Editable s){ 
          Log.d("seachScreen", "afterTextChanged"); 
        } 
        public void beforeTextChanged (CharSequence s, int start, int 
          count, int after) 
        { 
          Log.d("seachScreen", "beforeTextChanged"); 
        } 
        public void onTextChanged (CharSequence s, int start, int before, 
          int count) 
        { 
          Log.d("seachScreen", s.toString()); 
        } 

      final TextView tv = (TextView)findViewById(R.id.tv); 
    }); 
    } 

} 
+2

Si no hay texto ingresado en editText? ¿Cómo piensas manejar la tecla borrar? – atasoyh

Cuestiones relacionadas