1. 程式人生 > >android設定軟鍵盤搜尋鍵以及監聽搜尋鍵點選時發生兩次事件的問題解決

android設定軟鍵盤搜尋鍵以及監聽搜尋鍵點選時發生兩次事件的問題解決

在輸入框中加入android:imeOptions="actionSearch",呼叫軟鍵盤時,回車鍵就會顯示搜尋二字。

我想在點選搜尋時,跳轉到下一個頁面,但是呼叫setOnKeyListener,每次都執行兩次。最後上網看到別人的文章,解決了問題,解決方法是呼叫setOnEditorActionListener而不是用setOnKeyListener來監聽點選搜尋按鈕。

程式碼如下(在fragment中寫的,在activity中寫的時候去掉context相關的東西就行了):

searchText.setOnEditorActionListener(new OnEditorActionListener() {

@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if(actionId ==EditorInfo.IME_ACTION_SEARCH){
// 先隱藏鍵盤
((InputMethodManager) searchText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE))
.hideSoftInputFromWindow(
getActivity()
.getCurrentFocus()
.getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);

//跳轉activity
   Intent intent = new Intent();
   intent.setClass(getActivity(), SearchResultActivity.class);
   startActivity(intent);

                                    // 將查詢的資料插入資料庫

                                     mDbHelper.insert_search_history(searchText.getText().toString(), getStringDate());

                   return true;
                   }
               return false;
           }
});