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

jia635發表於2014-08-22

如圖所示,有時候為了佈局美觀,在搜尋時沒有搜尋按鈕,而是呼叫軟體盤上的按鈕。呼叫的實現只需要在XML在輸入框中加入android:imeOptions="actionSearch",呼叫軟鍵盤時,Enter鍵就會顯示搜尋二字。

然後呼叫 OnEditorActionListener,不是OnKeyListener

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

                     

                   return true;
                   }
               return false;
           }
});

在androidMainfest.xml檔案中在此Activity中寫入 android:windowSoftInputMode="adjustPan"可以防止軟鍵盤會把原來的介面擠上去的問題


相關文章