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报错java.lang.UnsupportedOperationException: Failed to resolve ...