Android:Searchview甚至打开其他具有不同ID的菜单项

Posted

技术标签:

【中文标题】Android:Searchview甚至打开其他具有不同ID的菜单项【英文标题】:Android: Searchview opens even onClick of other menu items with different id 【发布时间】:2017-01-03 14:37:41 【问题描述】:

我的 SearchView 工作正常.. 但是当单击其他 menuItems 时它接受相同的行为。当我单击购物车图标时,也会调用 SearchView。我该如何避免呢? 这是我的菜单代码:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:yourapp="http://schemas.android.com/apk/res-auto">
    <!-- Search Widget -->
    <item
        android:id="@+id/action_search"
        android:icon="@drawable/ic_action_search"
        android:title="@string/action_search"
        yourapp:showAsAction="ifRoom|collapseActionView"
        yourapp:actionViewClass="android.support.v7.widget.SearchView"/>

    <item
        android:id="@+id/action_wishlist"
        android:icon="@drawable/ic_shopping_cart"
        android:title="@string/action_cart"
        yourapp:showAsAction="ifRoom|collapseActionView"
        yourapp:actionViewClass="android.support.v7.widget.SearchView"/>
    <item
        android:id="@+id/action_cart"
        android:icon="@drawable/ic_action_search"
        android:title="@string/action_search"
        yourapp:showAsAction="ifRoom|collapseActionView"
        yourapp:actionViewClass="android.support.v7.widget.SearchView"/>
    </menu>

以及 SearchView 的代码:

@Override
public boolean onCreateOptionsMenu(Menu menu) 
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu_main, menu);

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

    return super.onCreateOptionsMenu(menu);

单击购物车图标时我想要不同的行为,但它只是执行与单击搜索图标时相同的操作。我想将 SearchView 仅限于 SearchView 图标。在购物车图标上,我想执行其他操作。请帮忙

【问题讨论】:

你在哪里处理每个单独菜单项的点击事件?请同时包含该源代码! 【参考方案1】:

我只需要删除:

  yourapp:showAsAction="ifRoom|collapseActionView"
  yourapp:actionViewClass="android.support.v7.widget.SearchView"

来自不是 SearchView 的其他菜单项

【讨论】:

以上是关于Android:Searchview甚至打开其他具有不同ID的菜单项的主要内容,如果未能解决你的问题,请参考以下文章

onCreateOptionsMenu中的expandActionView永久删除或隐藏操作栏中的其他菜单项

更改操作栏searchview提示文本颜色

使用SearchView报错java.lang.UnsupportedOperationException: Failed to resolve ...

Android - SearchView - setTypeface不可用

Android 中 SearchView

Android SearchView onclick