如何在改变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 保存数据