Android:如何在使用`OnQueryTextListener`时按下ENTER来触发搜索意图?

时间:2016-11-14 10:01:31

标签: android android-intent searchview

我想建立一个即时搜索视图,只要用户输入任何内容,就会立即在相同的布局中显示搜索结果。所以我谷歌搜索并决定使用onQueryTextChange来实现它。但是,我无法弄清楚如何“触发”按下ENTER将导致的正常结果的意图,告诉我的Activity有一个事件,用户在searchview和你输入了一些东西({{1应该处理它。

有什么想法可以提供帮助吗?

1 个答案:

答案 0 :(得分:0)

如果我理解你是正确的,你想要识别KEY_EVENT(ENTER)。我最终将自定义EditText样式设置为原始SearchView,然后使用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

的原因

注意{if}中的EditorInfo.IME_ACTION_SEARCH选项,您可以使用放大图标而不是Enter键请求“特殊”键盘布局(但请记住,并非所有键盘都支持此选项,自定义键盘应用可能会显示“通常”键盘布局)

android:inputType="text|textNoSuggestions"
android:imeOptions="actionSearch"