2016-02-29 49 views
0

我搜索了网络的答案,但无法找到我需要的解决方案。我的问题是如何重新创建菜单来更新我的基础适配器内我的购物车计数图标。我现在正在工作的应用程序是一个应用程序,它可以计算用户订购的项目,它也具有项目类别。当我回到显示类别的活动时,购物车更新,但我无法在我的物品适配器中执行此操作。代码非常简单。在BaseAdapter中使用invalidateOptionsMenu

这一行是订购该产品的最后阶段。

setNotifCount(db.getCartCount()); 

,这是功能。

private void setNotifCount(int count){ 
     mNotifCount = count; 
     invalidateOptionsMenu(); 
} 

它显示invalidateOptionsMenu();是一个错误,因为它无法解析该方法。我尝试使用ActivityCompat.invalidateOptionsMenu(),但它也抛出一个NPE。

回答

1

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

 ((YourActivity)context).invalidateOptionsMenu(); 

还呼吁ActivityCompat.invalidateOptionsMenu()将通过NPE因为你是一个类,而不是一个对象调用invalidateOptionsMenu。