如何在改变sharedpreferences数据后自动改变android menuItem数据?

我的应用程序上有sharedpreferences& 从不同的片段和活动中,我改变了sharedpreferences数据。但是我有一个menuItem是一个整数的值。所以当sharedpref数据从任何活动中被改变时,它应该被更新。

例如:它是一个总金额,就像如果用户从另一个活动片段中购买一些产品,价格应该被更新。

这个截图可以帮助你更好的理解。https:/prnt.cs26pl0

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.search_bar, menu);
        pointsMenuItem =menu.findItem(R.id.points); 
pointsMenuItem.setTitle(String.valueOf(SaveSharedPreference.getPoints(getApplicationContext())));
        pointsMenuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem menuItem) {
                pointsMenuItem.setTitle(String.valueOf(SaveSharedPreference.getPoints(getApplicationContext())));
                return false;
            }
        });

        return true;
    }

解决方案:

当用户点击购买项目后(sharedpreferences值更新),添加以下内容 invalidateOptionsMenu() 办法

invalidateOptionsMenu() 将强制重载onCreateOptionsMenu。

希望对你有所帮助…

给TA打赏
共{{data.count}}人
人已打赏
解决方案

从文件文本中转换比特币私钥--逐行转换。

2022-4-22 13:08:56

解决方案

rails: 如何基于子域覆盖locale?

2022-4-22 14:08:45

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索