如何刷新以前的 activity 工具栏菜单(购物车)值
How to refresh previous activity ToolBar menu (Cart) value
我有 2 个 activity。第一个 activity 具有工具栏菜单,因为 Cart.And 值的增加或减少取决于购物车的数量。下一个 activity fragmnet 有购物车 Functionality.Here 我们可以删除购物车产品。
让我们考虑一下图像:
- 图片 1 的购物车数为 3。
- 购物车功能页面的计数为 3。
- 现在我删除第一个产品。
- 在相应的页面中,它从以前的值中扣除。
- 但是当我来到第一个 activity 时,它没有刷新,而不是 2,它有 3 作为购物车计数。
如何刷新第一个 activity 而我使用 onBackpressed 第二个 activity。
请帮助我。
您可以在片段 class 中通过 ((YourHomeActivity)getActivity()) 获取 activity 引用。使您的工具栏变量 public 并通过 activity 引用访问它以更新它。
在第一个 Activity 的 onRestart
方法中检查购物车商品数量(比如它的增加或减少)调用 onPrepareOptionmenu
方法来更新数量(确保您的数量在到达之前更新首先 activity)。您必须维护临时计数和实际计数。希望你明白!
你可以做的一件事是使用 Sharepreference 来存储购物车的价值,这样它就会改变所有 activity 并将代码放在 onResume() 方法中
我用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);
}
我有 2 个 activity。第一个 activity 具有工具栏菜单,因为 Cart.And 值的增加或减少取决于购物车的数量。下一个 activity fragmnet 有购物车 Functionality.Here 我们可以删除购物车产品。
让我们考虑一下图像:
- 图片 1 的购物车数为 3。
- 购物车功能页面的计数为 3。
- 现在我删除第一个产品。
- 在相应的页面中,它从以前的值中扣除。
- 但是当我来到第一个 activity 时,它没有刷新,而不是 2,它有 3 作为购物车计数。
如何刷新第一个 activity 而我使用 onBackpressed 第二个 activity。 请帮助我。
您可以在片段 class 中通过 ((YourHomeActivity)getActivity()) 获取 activity 引用。使您的工具栏变量 public 并通过 activity 引用访问它以更新它。
在第一个 Activity 的 onRestart
方法中检查购物车商品数量(比如它的增加或减少)调用 onPrepareOptionmenu
方法来更新数量(确保您的数量在到达之前更新首先 activity)。您必须维护临时计数和实际计数。希望你明白!
你可以做的一件事是使用 Sharepreference 来存储购物车的价值,这样它就会改变所有 activity 并将代码放在 onResume() 方法中
我用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);
}