2011-09-05 14 views
5

He declarado un EditText mediante programación (es decir, no en XML) y deseo aplicarle un controlador OnKeyDown. El código que se muestra no funciona. El contexto es, estoy tratando de capturar una cadena corta del teclado, que no debe incluir caracteres de control (comencé con la tecla Enter). Tal vez hay una mejor manera?EditText OnKeyDown

Gracias!

 public EditText ttsymbol; 

/** Called when the activity is first created. */ 
@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
     switch (keyCode) { 
     case KeyEvent.KEYCODE_ENTER: 
      // IGNOREenter key!! 
      return true; 

     }return false; 
    } 

Respuesta

15

Debe vincular el onKeyListener a su editText.

myEditText.setOnKeyListener(new OnKeyListener() {   
      @Override 
      public boolean onKey(View v, int keyCode, KeyEvent event) { 
       if (event.getAction()==KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_ENTER) { 
        //do something here 
        return true; 
       } 
       return false; 
      } 
     }); 
+0

Gracias, que se ve bien para mí, pero no el compilador: Error de sintaxis en "setonKeyListener" señal VariableDeclaratorId espera después de esta señal – SirHowy

+0

Sabía usted instancia su edición de texto con: 'ttsymbol = new EditarTexto (contexto)'? Después de esto, debería poder agregar el OnKeyListener. Simplemente reemplace "myEditText" con su nombre, p. "ttsymbol"! – Dyonisos

+0

¿Te refieres así? – SirHowy