我正在尝试从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;
}
但是我希望能够在此方法之外修改特定菜单项的标题。
最佳答案
正如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);
}
是更好的选择。我使用了https://stackoverflow.com/a/17496503/568197的答案
关于java - 如何在Android中动态更改菜单项文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7066657/