2011-09-05 30 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