正在膨胀的片段内的菜单项onCreateOptionsMenu()
要点1:但这里onCreateOptionsMenu
呼吁多的时间,我没有在那里调用invalidateOptionMenu()
内的片段和我没有得到为什么会是这个样子。
要点2:我更新购物车数量(徽章计数),请看看下面我的代码, mCartCountTextView
是持有TextView的,保存的计数值成员。 正在设置mCartCountTextView
在片段的一些地方通过调用refreshCartCount()
但价值mCartCountTextView
即使没有更新SharedPreference
已更新值。
代码片段:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
menu.clear();
inflater.inflate(R.menu.menu_base, menu);
MenuItem cartItem = menu.findItem(R.id.action_cart);
cartItem.setActionView(R.layout.base_menu_custom_layout);
cartItem.getActionView().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mMenuClickListener.onCartClick();
}
});
mCartCountTextView = ((TextView) cartItem.getActionView().findViewById(R.id.cart_count));
refreshCartCount();
}
public void refreshCartCount() {
if (PreferenceManager.getInstance(getActivity()).getCustomerCartCount() == 0)
mCartCountTextView.setVisibility(View.GONE);
else {
mCartCountTextView.setVisibility(View.VISIBLE);
mCartCountTextView.setText(String.valueOf(PreferenceManager.getInstance(getActivity()).getCustomerCartCount()));
}
}
我如何解决它?
这里是调用invalidateOptionsMenu()
相同的片段中。
@Override
public void setCartResponse(CartListDTO response) {
hideProgressBar();
showToast(response.message);
if (response.status == 1) {
mCartBtn.setText(R.string.go_to_cart);
getActivity().invalidateOptionsMenu();
}
}