2013-02-27 95 views
0

我正在使用SearchView小部件來搜索ListView中的文本。
當輸入文本時,虛擬鍵盤打開。 我想在按下「望遠鏡鍵」時重複搜索。
如何截取虛擬鍵盤按鍵事件?Android SearchView:按下Spyglass鍵時再次搜索

注意:不要將位於虛擬鍵盤右下角的spyglass鍵與SearchView小部件中的spyglass圖標混淆。

我會告訴你我想,所以我知道這是行不通的:

  • onQueryTextChange()上的關於搜索查看
  • TextWatcher的搜索查看
  • onKeyListener()()搜索查看
  • dispatchKeyEvent()上的ListView
+0

有一個有趣的解決方法進入:[搜索查看偵聽IME行動](http://stackoverflow.com/a/ 383414分之33385262) – 2015-10-28 08:16:34

回答

2

這是解決方案,我去。
我還沒有找到如何獲得KeyEVent的「望遠鏡鍵」(我認爲它是KEYCODE_ENTER相同),所以我所做的是啓用SearchView上的提交按鈕「,我接到一個電話onQueryTExtSubmit() 。每次點擊時間(onQueryTextListener的方法)

sv = (SearchView) findViewById(R.id.viewer_search); 
    sv.setOnQueryTextListener(searchListener); 
    sv.setSubmitButtonEnabled(true); 
    sv.setIconifiedByDefault(false); 

而且

private OnQueryTextListener searchListener = new OnQueryTextListener() { 

    @Override 
    public boolean onQueryTextSubmit(String query) { 
     // do my stuff 
     return true; 
    } 

    . . . 
相關問題