如何在 Android 中动态更改菜单项文本
发布于 2022-07-28 23:14:26
我正在尝试从onOptionsItemSelected(MenuItem item)
方法外部更改菜单项的标题。
我已经做了以下事情;
public boolean onOptionsItemSelected(MenuItem item) {
try {
switch(item.getItemId()) {
case R.id.bedSwitch:
if(item.getTitle().equals("Set to 'In bed'")) {
item.setTitle("Set to 'Out of bed'");
inBed = false;
} else {
item.setTitle("Set to 'In bed'");
inBed = true;
}
break;
}
} catch(Exception e) {
Log.i("Sleep Recorder", e.toString());
}
return true;
}
但是我希望能够在此方法之外修改特定菜单项的标题。
关注者
0
被浏览
12
1 个回答
-
正如 JxDarkAngel 建议的那样,从 Activity 的任何地方调用它,
invalidateOptionsMenu();
然后覆盖:
@Override public boolean onPrepareOptionsMenu(Menu menu) { MenuItem item = menu.findItem(R.id.bedSwitch); if (item.getTitle().equals("Set to 'In bed'")) { item.setTitle("Set to 'Out of bed'"); inBed = false; } else { item.setTitle("Set to 'In bed'"); inBed = true; } return super.onPrepareOptionsMenu(menu); }