我在网上搜索了答案,但无法找到我需要的解决方案。我的问题是如何重新创建菜单以更新我的BaseAdapter
中的购物车计数图标。我现在正在使用的应用程序是一个计算用户订购商品的应用程序,它还有商品类别。当我返回显示类别的活动时,购物车会更新但我无法在我的商品适配器中执行此操作。代码很简单。
这一行是在订购商品的最后。
setNotifCount(db.getCartCount());
这就是功能。
private void setNotifCount(int count){
mNotifCount = count;
invalidateOptionsMenu();
}
它表明invalidateOptionsMenu();
是一个错误,因为它无法解决该方法。我尝试使用ActivityCompat.invalidateOptionsMenu()但它也抛出一个NPE。
你不能调用invalidateOptionsMenu()因为基本适配器中没有这样的方法。您可以做的是将您的活动作为上下文传递给基础适配器并调用如下。
((YourActivity)context).invalidateOptionsMenu();
当您在类而不是对象上调用invalidateOptionsMenu时,也会通过NPE调用ActivityCompat.invalidateOptionsMenu()。