invalidateOptionMenu()禁用工具栏菜单的单击功能 [英] invalidateOptionMenu() disables the clicking functionality of toolbar menu

查看:72
本文介绍了invalidateOptionMenu()禁用工具栏菜单的单击功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的电子商务应用程序中,我正在使用带有count textview的购物篮.在这里,为了更新购物车计数文本视图,在单击购物车导航下一个片段后,我使用了invalidateOptionMenu();,这是行不通的.甚至我尝试了很多方法,但都没有用.请帮助我

In my eCommerce app, I am using cart basket with count textview. Here for updates the cart count textview I used invalidateOptionMenu(); after that the clicking of cart navigates next fragment is not working. Even I tried in many ways,but did not worked.Please help me

这是我的代码:

 @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);


        badgeLayout = (RelativeLayout) menu.findItem(R.id.badge).getActionView();           /*-------Cart Basket with Counter---------*/
        basketCount = (TextView) badgeLayout.findViewById(R.id.counter);
        CommonUtil.dbUtil.open();
        try {
            MainActivity.basketCount.setText(String.valueOf(CommonUtil.dbUtil.getCartItem().getCount()));
        } catch (Exception e) {
            MainActivity.basketCount.setText(String.valueOf("0"));
        }

        badgeLayout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Toast.makeText(context, "Cart Clicked", Toast.LENGTH_SHORT).show();
                /*
                * menuItemClicked represents ToolBar OverFlow (...) menu is clicked.
                * */
                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);

            }
        });

        invalidateOptionsMenu();
        return super.onCreateOptionsMenu(menu);
    }

推荐答案

而不是在onCreateOptionsMenu()中调用invalidateOptionMenu(),而是在更新在basketCount TextView中设置的count value时调用它

instead of calling invalidateOptionMenu() inside your onCreateOptionsMenu() you should call it when you are updating the count value that you set in basketCount TextView.

在此呼叫invalidateOptionsMenu()无济于事,因此,当您在购物车中添加商品时,应致电invalidateOptionsMenu().

Calling invalidateOptionsMenu() is of no avail there, so when you add item to your cart at that you should call invalidateOptionsMenu().

这篇关于invalidateOptionMenu()禁用工具栏菜单的单击功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆