2012-10-22 208 views
3

我在我的活动中有一个EditText字段。用户可以使用虚拟键盘更改该字段中的文本。一旦用户按下键盘上的回车键,我想执行一些操作。那么,我该如何实现setOnClickListener到键盘上的输入按钮呢?onClickListener键盘按钮

回答

8

使用onKeyListener检查Enter按下

为如。

edittext.setOnKeyListener(new OnKeyListener() { 
    @Override 
    public boolean onKey(View v, int keyCode, KeyEvent event) { 
     if (event.getAction()!=KeyEvent.ACTION_DOWN) 
      return false; 
     if(keyCode == KeyEvent.KEYCODE_ENTER){ 
      //your necessary codes... 
      return true; 
     } 
     return false; 
    } 
}); 

了解更多信息,请检查official documentation

你也可以看到,example

+0

感谢这工作完美!我只需要将'editext'更改为我在代码中使用的'editext',然后在末尾添加'''来完成'(new OnKeyListener(){',否则太棒了。谢谢。 – Azurespot

2

设置在文本视图上执行操作时要调用的特殊侦听器。当按下回车键时,或者当提供给IME的操作被用户选择时,这将被调用。设置这意味着正常的硬键事件不会在文本视图中插入换行符,即使它是多行的;然而,按住ALT修饰符将允许用户插入换行符。

edittext.setOnEditorActionListener(new OnEditorActionListener() { 

      @Override 
      public boolean onEditorAction(final TextView v, final int actionId, final KeyEvent event) { 
       if ((event != null && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) || (actionId == EditorInfo.IME_ACTION_DONE)) { 
        //perform your action 
        //button.performClick(); 
       } 
       return false; 
      } 
     });