当前位置: 首页 > 面试题库 >

如何在Android中动态更改菜单项文本

唐阳飇
2023-03-14
问题内容

我正在尝试从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);
}


 类似资料:
  • 我是根据编辑文本中给出的计数动态创建单选按钮的。我想在应用程序中动态创建radiobutton后编辑它的名称,就像用户有特权在应用程序中命名单选按钮一样。我该怎么做android studio这是我创建dyanmic radiobuttons到目前为止的代码。在代码rbn.settext(“radiobutton”+I)中,将radiobutton命名为Radiobutton1、Radiobutt

  • 我如何在android studio中动态设置src属性(第7行),我尝试更改backgroundResource,但结果不一样 XML文件 Java代码

  • 我正在尝试用laravel动态显示菜单。 我有两个表,一个是主类,另一个是子类 下面是分类表的结构 子类别结构 这是我尝试过的 我面临的问题是,由于foreach循环,它每次都会复制主类别,例如 如您所见,每次显示子类别时,它都会复制主类别。我怎么能显示主要类别一次,然后所有子类别下面它 我有另一个模板,它有不同的菜单HTML结构 它一次又一次地生成ul和div,从而导致html错误

  • 问题内容: 向下滚动页面时,活动菜单项将更改。怎么做? 问题答案: 通过绑定到容器的滚动事件(通常是窗口)来完成。 快速示例:

  • 我已经设置了一个回收器视图,每行都有文本视图和隐藏按钮。 如果用户单击该项,就会显示按钮。 如果用户单击其他项,则按钮将被隐藏。 再循环视图将位置发送到每个接口的活动,该活动更改其属性。 只要不滚动recyclerview,一切都能完美运行。 Layoutmanager.getchildat(职位) 现在,当项目超出视图时,用户滚动recyclerview,位置就会出错。每向下滚动一个用户单击的项