2011-09-05 61 views
5

我已經以編程方式(即不是以XML格式)聲明瞭EditText,並且想要將OnKeyDown處理程序應用於它。顯示的代碼不起作用。上下文是,我試圖從鍵盤捕獲一個短字符串,它不應該包含控制字符(我已經用Enter鍵開始)。也許有更好的方法?EditText OnKeyDown

謝謝!

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

回答

15

您必須將onKeyListener綁定到您的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

謝謝,這對我來說很好,但不要編譯:令牌「setonKeyListener」語法錯誤VariableDeclaratorId後預計此令牌 – SirHowy

+0

做了與你比如你編輯短信:'ttsymbol =新的EditText(上下文)'?在此之後,您應該可以添加onKeyListener。只需用您的名字替換「myEditText」,例如「ttsymbol」! – Dyonisos

+0

你的意思是這樣的? – SirHowy