我的应用程序上有共享首选项,并且来自不同的 fragment 和 Activity ,我更改了共享首选项数据。但我有一个带有整数值的菜单项。因此,当任何 Activity 更改/更新共享偏好数据时,都应该更新它。
示例:它是总金额,就像用户从另一个 Activity/fragment 购买某些产品一样,价格应该更新。
这张截图可以帮助您更好地理解。 https://prnt.sc/s26pl0
@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;
}
最佳答案
当用户点击购买商品后(共享首选项值更新)添加 invalidateOptionsMenu()
方法
invalidateOptionsMenu()将强制重新加载 onCreateOptionsMenu
希望这对您有帮助...
关于java - 如何在更改sharedpreferences数据后自动更改android menuItem数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61301720/