Android的EditText經過setOnEditorActionListener給文本編輯框設置監聽事件,可是在其處理方法onEditorAction中的邏輯在每次回車後都觸發了兩次,服務器
原來是在鍵盤迴車的ACTION_UP和ACTION_DOWN時都會觸發這個方法,所以修改代碼以下,就防止了兩次執行:ide
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { //如下方法防止兩次發送請求 if (actionId == EditorInfo.IME_ACTION_SEND || (event != null && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) { switch (event.getAction()) { case KeyEvent.ACTION_UP: //發送請求 String keyWord = et_search.getText().toString().trim(); if (null == keyWord) keyWord = ""; dismisspopup(); LogUtils.d("向服務器發送搜索請求:" + keyWord); //發起查詢 searchByKeyWord(keyWord); hideSoftInput(); return true; default: return true; } } return false; }