Android中監聽Edittext控制元件於鍵盤中按下確認事件OnEditorActionListener
阿新 • • 發佈:2019-01-03
背景
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;
}
});
畢。