2016-11-14 63 views
0

我想構建一個即時搜索視圖,一旦用戶輸入任何內容,它立即在相同的佈局中顯示搜索結果。所以我用谷歌搜索,並決定使用onQueryTextChange來實現。然而,我無法弄清楚如何按照ENTER鍵導致的正常結果「觸發」意圖,告訴我的Activity有一個事件,即用戶在searchview中輸入了某些內容,並且您(Activity)應該處理它。Android:如何在使用`OnQueryTextListener`時按下ENTER鍵來啓動搜索意圖?

有幫助嗎?

回答

0

如果我明白你的意思,你想辨認KEY_EVENT(ENTER)。我已經與風格像原來SearchView定製EditText結束,然後使用OnEditorActionListener

queryEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() { 
     @Override 
     public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
      if (actionId == EditorInfo.IME_ACTION_SEARCH || 
        (event != null && event.getKeyCode()==KeyEvent.KEYCODE_ENTER)) { 
       performSearch(); 
       return true; 
      } 
      return false; 
     } 
    }); 

SearchView沒有setOnEditorActionListener方法,這就是爲什麼我使用的是簡單的EditText

EditorInfo.IME_ACTION_SEARCH選項「如果」內,您可以請求使用magnify圖標而不是Enter鍵的「特殊」鍵盤佈局(但請記住,並非所有鍵盤都支持此選項,並且自定義鍵盤應用程序可能會顯示「常規」鍵盤佈局)

android:inputType="text|textNoSuggestions" 
android:imeOptions="actionSearch" 
相關問題