android - 如何从 Android 支持库操作栏 SearchView 中检索文本?

标签 android android-support-library searchview android-actionbar-compat

我正在为操作栏搜索 View 使用 Android 兼容支持库。如何添加在输入内容后单击键盘上的搜索按钮时触发的事件?

到目前为止我有这个:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_users, menu);

    MenuItem searchItem = menu.findItem(R.id.action_search);
    SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);

    return super.onCreateOptionsMenu(menu);
}

Google docs page似乎没有告诉我这个,它只显示了如何设置它......
到目前为止,我可以看到搜索图标,当我单击它时,它会显示 EditText,我可以在其中输入内容,然后如果我单击键盘上的搜索按钮,则没有任何反应。然后我想触发一个可以获取该字符串的事件,这样我就可以用它做我想做的事。
有谁知道如何做到这一点?

最佳答案

你需要添加一个QueryTextListener:

searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
    @Override
    public boolean onQueryTextSubmit(String query) {
        // TODO : query is the text from the search view 
        // after you clicked search
        return true;
    }

    @Override
    public boolean onQueryTextChange(String newText) {
        // TODO : newText is the text from the search view 
        // (event triggered every time the text changes)
        return false;
    }
});

关于android - 如何从 Android 支持库操作栏 SearchView 中检索文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21053971/

相关文章:

android - Kotlin 中 SearchView 的过滤器

android - SearchView 永久向上移动 AppBar?

android - 具有相同包名的两个不同项目

android - 如何在 Activity 中的视频播放器上叠加

android - 如何在 kotlin 正则表达式语句中使用正则表达式开始标记 (^)

java - 包 android.support.v4.app 不存在;在安卓工作室 0.8

android - 搜索 View 工具栏关闭图标

Android Activity 不会填满 WVGA 屏幕

android - 在 Android 5.+ 上的 CollapsingToolbarLayout 中不可点击开关

android - Vector Drawables 标志在支持库 24+ 上不起作用