Android的EditText通過setOnEditorActionListener給文本編輯框設置監聽事件,但是在其處理方法onEditorAction中的邏輯在每次回車後都觸發了兩次,原來是在鍵盤迴車的ACTION_UP和ACTION_DOWN時都會觸發這個方法,因此修改代碼如下,就防止了兩次 ...
Android的EditText通過setOnEditorActionListener給文本編輯框設置監聽事件,但是在其處理方法onEditorAction中的邏輯在每次回車後都觸發了兩次,原來是在鍵盤迴車的ACTION_UP和ACTION_DOWN時都會觸發這個方法,因此修改代碼如下,就防止了兩次執行:
1 public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 2 //以下方法防止兩次發送請求 3 if (actionId == EditorInfo.IME_ACTION_SEND || 4 (event != null && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) { 5 switch (event.getAction()) { 6 case KeyEvent.ACTION_UP: 7 //發送請求 8 String keyWord = et_search.getText().toString().trim(); 9 if (null == keyWord) 10 keyWord = ""; 11 dismisspopup(); 12 LogUtils.d("向伺服器發送搜索請求:" + keyWord); 13 //發起查詢 14 searchByKeyWord(keyWord); 15 hideSoftInput(); 16 return true; 17 default: 18 return true; 19 } 20 } 21 return false; 22 }