在BaseAdapter中使用invalidateOptionsMenu

时间:2016-02-29 03:10:01

标签: android baseadapter

我在网上搜索了答案,但无法找到我需要的解决方案。我的问题是如何重新创建菜单以更新我的is bin True is element True is pipeline False type is Gst.Bin 内的购物车计数图标。我现在正在使用的应用是一款可以计算用户订购商品的应用,它还有商品类别。当我返回显示类别的活动时,购物车会更新,但我无法在我的商品适配器中执行此操作。代码很简单。

此行在订购商品的最后。

BaseAdapter

这就是功能。

setNotifCount(db.getCartCount());

它显示private void setNotifCount(int count){ mNotifCount = count; invalidateOptionsMenu(); } 是一个错误,因为它无法解析该方法。我尝试使用ActivityCompat.invalidateOptionsMenu()但它也抛出一个NPE。

1 个答案:

答案 0 :(得分:2)

你不能调用invalidateOptionsMenu(),因为基本适配器中没有这样的方法。您可以做的是将您的活动作为上下文传递给基础适配器并调用如下。

        ((YourActivity)context).invalidateOptionsMenu();

当您在类而不是对象上调用invalidateOptionsMenu时,同样调用ActivityCompat.invalidateOptionsMenu()将通过NPE。