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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在改变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。

希望对你有所帮助...

以上是关于如何在改变sharedpreferences数据后自动改变android menuItem数据?的主要内容,如果未能解决你的问题,请参考以下文章

Android中如何设置SharedPreference文件名称?

如何在 sharedpreferences 中存储多个数据?

如何在 Fragment 中使用 SharedPreferences 保存数据

如何使用 SharedPreferences 系统地存储和获取数据?

我的主要活动中的偏好不会改变

如何使用SharedPreferences? [重复]