2011-09-05 14 views
5

Bir EditText'i programlı olarak bildirdim (yani, XML'de değil) ve bir OnKeyDown işleyicisini uygulamak istiyorum. Gösterilen kod çalışmıyor. Bu bağlamda, klavyeden kısa bir karakter dizisi yakalamaya çalışıyorum, kontrol karakterlerini içermemelidir (Enter tuşuyla başladım). Belki daha iyi bir yolu var mı?EditText OnKeyDown

Teşekkürler!

 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; 
    } 

cevap

15

onKeyListener öğesini editText'inize bağlamanız gerekir.

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

Teşekkürler, bu derleyici ama bana değil iyi görünüyor: 'ttsymbol = new EditText (bağlam)': belirteç "setonKeyListener" konulu sözdizimi hatası bu belirteç – SirHowy

+0

ile size örnek Düzenleme metni mü sonra VariableDeclaratorId beklenen? Bundan sonra onKeyListener'ı ekleyebilmeniz gerekir. Sadece "myEditText" ile adınızı değiştirin. "Ttsymbol"! – Dyonisos

+0

Bunu mu demek istediniz? – SirHowy