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;
}
});