android - 如何处理 SearchView 中的后退箭头事件

标签 android toolbar searchview

如何处理搜索 View 小部件中后退箭头上的点击事件:

enter image description here

我试过这段代码,但它不起作用:

searchtollbar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Log.d(TAG, "back arrow clicked");
    }

});

我也试过这个:

MenuItemCompat.setOnActionExpandListener(item_search, new 
MenuItemCompat.OnActionExpandListener() {
    @Override
    public boolean onMenuItemActionCollapse(MenuItem item) {
        // Do something when collapsed
        return true;
    }

    @Override
    public boolean onMenuItemActionExpand(MenuItem item) {
        // Do something when expanded
        return true;
    }
});

上述代码的问题是调用 onMenuItemActionCollapse() 方法也会执行 onQueryTextChange(),这是不可取的。

所以请帮忙。

最佳答案

要解决这个问题,您必须覆盖 onOptionsItemSelected 方法。

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle item selection
        switch (item.getItemId()) {
            case android.R.id.home:
                // handle back event.
                return true;

            default:
                return super.onOptionsItemSelected(item);
        }
    }

关于android - 如何处理 SearchView 中的后退箭头事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45635482/

相关文章:

toolbar - Powerbuilder:尝试设置菜单级联的当前项目

android - 如何知道操作栏中的 SearchView 何时关闭?

Firebase 数据上的 Android Searchview

java - 从 Java 调用 Javascript - Android

Android:显示可变图像

android - 如何绕过 Firebase 缓存来刷新数据(在 Android 应用中)?

java - 添加工具栏不起作用

java - 在 Play 商店发布后 map 无法加载

javascript - react-data-grid - 您可以将自己的组件添加到工具栏吗?

android - 更改 searchView 的光标颜色