1. 程式人生 > >Android中監聽Edittext控制元件於鍵盤中按下確認事件OnEditorActionListener

Android中監聽Edittext控制元件於鍵盤中按下確認事件OnEditorActionListener

背景

Edittext作為一個常見控制元件,很多時候都有監聽鍵盤確認就執行指定邏輯的需求

實現

這個很簡單嘛,Edittext自帶有鍵盤按下事件監聽,就是OnEditorActionListener了,用就對了

問題

使用中發現,的確可以監聽鍵盤確認事件,但邏輯會執行兩次!!!兩次!!!

解決

後來實驗證明,原來鍵盤按下後會觸發KeyEvent.ACTION_UP事件和KeyEvent.ACTION_DOWN事件,所以會出現邏輯執行兩次的盛況!所以,加個事件判斷就好了。

 et_input.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) { if (null != keyEvent && KeyEvent.KEYCODE_ENTER == keyEvent.getKeyCode()) { switch (keyEvent.getAction()) { case KeyEvent.ACTION_UP: //做愛做的事情
return true; default: return true; } } return false; } });

畢。