[android]MenuPopupHelper 不能使用未经锚

标签: Android
发布时间: 2016/10/10 20:08:52
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我想要添加 PopupMenu 对我 MenuItem

Menu.xml

 <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/date"
        app:showAsAction="ifRoom|withText"
        android:title="Date"
        android:visible="true"/>
    <item
        android:id="@+id/category"
        app:showAsAction="ifRoom|withText"
        android:title="Category"
        android:visible="true"/>
</menu>

当点击 MenuItem 我调用此代码︰

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();

    if (id == R.id.filter_action) {
        showPopup(item.getActionView());
    }
    return super.onOptionsItemSelected(item);
}

private void showPopup(View v) {
    PopupMenu popup = new PopupMenu(getActivity(), v);
    MenuInflater inflater = popup.getMenuInflater();
    inflater.inflate(R.menu.filter_billing_menu, popup.getMenu());
    popup.show();
}

然后此异常︰

 java.lang.IllegalStateException: MenuPopupHelper cannot be used without an anchor

如何可以修复它吗?

解决方法 1:

我在读"互联网"然后此代码︰

showPopu(getActivity().findViewById(R.id.filter_action));

相反

showPopup(item.getActionView());

它的作品对我来说

官方微信
官方QQ群
31647020