如何刷新以前的活动ToolBar菜单(Cart)值

时间:2016-05-24 05:40:22

标签: android menu refresh toolbar

我有2项活动。第一个活动的工具栏菜单为Cart.And值的增加或减少取决于购物车数量。下一个活动fragmnet具有购物车功能。我们可以删除购物车产品。

让我们考虑一下图像:

  1. 图片1的购物车数量为3。
  2. 购物车功能页面的计数为3。
  3. 现在我删除了第一个产品。
  4. 在相应的页面中,它将从之前的值中扣除。
  5. 但是当我来到第一个活动时,它没有刷新,而不是2,它有3个作为购物车数。
  6. 当我使用onBackpressed第二个活动时,如何刷新第一个活动。 请帮帮我。

    enter image description here

4 个答案:

答案 0 :(得分:2)

在First Activity的onRestart方法检查购物车项目计数(如增加或减少)中调用onPrepareOptionmenu方法来更新计数(确保您的计数在第一次活动之前更新) 。你必须保持tempcount和实际数量。希望你明白!

答案 1 :(得分:1)

您可以通过片段类中的((YourHomeActivity)getActivity())获取活动参考。使工具栏变量公开,并通过对updatr它的活动参考来访问它。

答案 2 :(得分:1)

您可以做的一件事是使用Sharepreference存储购物车的价值,以便更改所有活动并将代码放入onResume()方法

答案 3 :(得分:1)

我使用invalidateOptionsMenu();

实现了目标
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);

    badgeLayout = (RelativeLayout) menu.findItem(R.id.badge).getActionView();           /*-------Cart Basket with Counter---------*/
    mCounter = (TextView) badgeLayout.findViewById(R.id.counter);

    CommonUtil.dbUtil.open();
    MainFragmentAdapter.CART_COUNT = String.valueOf(CommonUtil.dbUtil.getCartItem().getCount());
    MainActivity.mCounter.setText(MainFragmentAdapter.CART_COUNT);

    invalidateOptionsMenu();

    badgeLayout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Config.menuItemClicked = true;
            SharedPreferences.Editor editor = CommonUtil.pref.edit();
            editor.putBoolean("cart_Clicked", Config.menuItemClicked);
            editor.apply();
            Intent next = new Intent(context, ProductActivity.class);
            startActivity(next);
        }
    });
    return super.onCreateOptionsMenu(menu);
}