2012-10-22 204 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; 
      } 
     });