2016-02-29 48 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。