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