单击时更改 MenuItem 可见性

2023-12-10

我正试图隐藏一个MenuItem并在选择第一个时使另一个可见。

每个 ID 为:

pencil: R.id.button_routines_edit
check mark: R.id.button_routines_edit_done

这里是相关代码:

  private boolean isEditing = false;

  @Override
  public boolean onOptionsItemSelected(MenuItem item) {   
      // Handle item selection
      switch (item.getItemId()) {
      case R.id.button_routines_edit:
            // hide pencil icon, show checkmark
            isEditing = true;
        return true;
      case R.id.button_routines_edit_done:
            // show pencil icon, done editing
            isEditing = false;
        return true;
      default:
          return super.onOptionsItemSelected(item);
      }

  }

  @Override
  public boolean onPrepareOptionsMenu(Menu menu) {
      super.onPrepareOptionsMenu(menu);
      // hide pencil when editing and show check mark
      menu.findItem(R.id.button_routines_edit).setVisible(!isEditing);
      menu.findItem(R.id.button_routines_edit_done).setVisible(isEditing);
      return true;
  }

我的问题是: 选项菜单不会在选择项目时重新绘制项目。换句话说,第一个不隐藏,第二个不显示。


您所需要做的就是致电invalidateOptionsMenu().

无效选项菜单()仅在 API 11+ 中可用,除非您使用动作栏夏洛克.

你遇到这个问题是因为你的MenuItems都显示在ActionBar, 基本上。如果将它们放在溢出菜单中,则无需调用invalidateOptionsMenu().

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单击时更改 MenuItem 可见性 的相关文章

  • Android 覆盖在软件按钮之上

    我正在尝试编写一个绘制自定义鼠标指针的应用程序 我目前有一个服务 它创建一个扩展 ViewGroup 的类 并使用 WindowManager 系统服务将其显示为带有 FLAG LAYOUT IN SCREEN 设置的 TYPE SYSTE
  • Android 主机意图过滤器通配符

    是否可以在 android host 属性上使用通配符 就像是 android host site com android pathPattern android pathPrefix m android scheme http gt Or
  • 已发布的 Flutter 应用程序在启动时崩溃

    编辑 此问题的解决方案是将您的 flutter 版本升级到较新的 dev 版本 then 1 7 0 您还可以上传单独的 APK 版本 但我个人不喜欢这个选项 请确保您没有从 flutter github 开发存储库下载 错误的构建 因为那
  • 是否可以使用最新的 APP_PLATFORM,同时仍保持向后兼容性?

    这是我的 Application mk APP ABI armeabi v7a APP PLATFORM android 16 APP OPTIM release APP STL gnustl static APP CPPFLAGS std
  • Android中如何使用洪水填充算法?

    我是Android编程新手 最近尝试编写一个简单的应用程序 仅供练习 在这个中 我想在用户点击时为图像着色 但我不知道如何开始 我读过不同的主题 其中提到使用 洪水填充 算法 我在网上找到了它 但我不知道如何将它放入我的简单应用程序中 我找
  • 应用程序实例是否始终在任何活动之前创建?

    在 Android 中 您可以通过扩展 Application 类并在 Manifest 中声明名称来提供您自己的 Application 类实现 我的问题是 这个实现是否总是在初始活动之前创建 或者活动可以在应用程序实例有时间创建之前启动
  • 按钮未显示在屏幕上

    我创建了一个应用程序 其中显示带有图像和文本的列表视图 我在页面末尾添加按钮 但这没有显示在屏幕上 我是 Android 新手 我该如何解决这个问题 这是我的 UI XML 代码
  • 如何使用闹钟音量和 setAudioAttributes 来播放铃声?

    所以我正在尝试了解音频属性 这是我到目前为止所拥有的 alarm getSound will return a proper URI to pick a ringtone Ringtone tone RingtoneManager getR
  • React Native Android 发布 apk 是调试,而不是发布

    我有一个现有的 Android 应用程序 我已根据以下内容将 React Native v0 30 活动添加到项目中docs http facebook github io react native releases next docs i
  • 监听什么来检测 Android 中的请勿打扰模式更改?

    我希望我的应用程序在手机设置为请勿打扰模式 仅限闹钟 仅限优先级或完全静音 时显示通知 通过聆听 这效果非常好android media RINGER MODE CHANGED在快速设置中检查此模式并在已选择的选项卡中选择模式时 但是 当选
  • Android ListView setSelection() 似乎不起作用

    我有一个ListActivity实现onListItemClick 并调用doSomething 类的功能 后者包含l setSelection position where l is the ListView object 现在有一个on
  • Google 移动广告和 Kindle Fire

    我最近用 Google 移动广告替换了 AdMob 库 对此我有一个疑问 广告会出现在 Amazon Kindle Fire 设备上吗 我问这个是因为我知道 Google 移动广告依赖于 Google Play 服务 所以我有点困惑 Goo
  • jar 中的 apklib 有什么优点?

    我正在关注这个问题 https stackoverflow com questions 6059502 whats the difference between apklib and jar files但它并没有完全回答我的问题 jar 中
  • Ionic Facebook Api 无效密钥哈希

    我无法让我的应用程序允许 Facebook 登录 每次用户尝试登录 Facebook 并使用他们的 FB 验证我的应用程序时 都会出现以下错误 无效的密钥哈希 它们的密钥哈希 xxxxxxxxxx 与任何存储的密钥哈希不匹配 配置您的应用程
  • 不显示 WRITE_EXTERNAL_STORAGE 的权限对话框

    I want to download a file using DownloadManager And DownloadManager wants to WRITE EXTERNAL STORAGE permission I have in
  • 内部存储的安全性如何?

    我需要的 对于 Android 我需要永久保存数据 但也能够编辑 并且显然是读取 它 用户不应访问此数据 它可以包含诸如高分之类的内容 用户不得对其进行编辑 我的问题 我会 并且已经 使用过Internal Storage 但我不确定它实际
  • 检测 ListView(或 ScrollView)内的滚动位置

    我正在构建一个聊天室应用程序 其中每 X 秒就会轮询一次新事件 每次发生这种情况时 此代码都会使用新数据更新 RoomAdapter ArrayAdapter 的自定义子类 并将其滚动到底部 RoomAdapter adapter Room
  • Android:无法发送http post

    我一直在绞尽脑汁试图弄清楚如何在 Android 中发送 post 方法 这就是我的代码的样子 public class HomeActivity extends Activity implements OnClickListener pr
  • [cocos2d-x]当我尝试在 Windows 10 中运行“python android-build.py -p 19 cpp-tests”时出现错误

    当我尝试运行命令时python android build p cpp tests 我收到如图所示的错误 在此之前 我收到了另一条关于 Android SDK Tools 版本兼容性的错误消息 所以 我只是将 sdk 版本从 26 0 0
  • putFragment() - 片段 x 当前不在 FragmentManager 中

    上面的标题被问了很多次 但答案似乎与FragmentStatePagerAdapter这与我的问题无关 我正在使用该方法putFragment Bundle String Fragment 直接地 The 安卓文档 http develop

随机推荐

  • 调用共享WebMethod时出现未知Web方法异常

    我正在尝试在我的网站上实施视图跟踪网络服务 我使用 JavaScript 是因为我想从我的跟踪视图中排除任何搜索机器人 问题是当我尝试使用 jQuery 发布到我创建的 Web 服务时 出现 未知的 Web 方法 错误 document r
  • 在 PHP 中显示更多数字

    假设我有 echo 1 3 它只打印出 0 33333333333333 我可以得到更多的数字吗 Can use bcdiv echo bcdiv 1 3 20 第三个论点 用于设置结果中小数点后的位数 您还可以使用 bcscale 设置所
  • Android 语音 - 如何在 Android 中阅读文本?

    如何在 Android 中读取数据 即将简单的文本字符串转换为语音 语音 有没有一个API可以让我做这样的事情 TextToVoice speaker new TextToVoice speaker Speak Hello World 使用
  • 如何在powershell中获取下一个工作日

    我有以下测试代码 基本上我正在检查文件夹中何时创建新文件 我需要知道如果文件是在下午 4 点之后创建的 则会在下一个工作日显示 目前我的代码显示第二天 但我需要显示下一个工作日 任何帮助 将不胜感激 formatteddate 0 h mm
  • 如何使用 jQuery 找到最高的 z-index

    我有许多具有不同 z 索引的 div 元素 我想找到这些 div 中最高的 z index 我怎样才能实现它 CSS layer 1 z index 1 layer 2 z index 2 layer 3 z index 3 layer 4
  • EXTjs gridfilter:如何在不重新加载存储的情况下清除过滤器?

    在 extjs GridFilters 中 有没有办法在不重新加载存储的情况下清除过滤器 这是要求 网格下面有一个网格 1 和另一个网格 2 grid 1 有一个 id 列表 当单击某个特定 id 时 grid 2 就会填充属于该 id 的
  • 错误:TCP 提供程序:错误代码 0x2746。在Linux中通过终端进行Sql设置期间

    我正在尝试按照文档在我的 Linux 中设置 ms sql 服务器https learn microsoft com pl pl sql linux quickstart install connect ubuntu view sql se
  • SAP .Net Connector 3.0 - 如何从非 SAP 系统发送 IDoc?

    我正在尝试使用 NET 连接器将数据发送到 SAP 系统 我已经能够非常轻松地发送对 RFC 功能模块的调用 但似乎没有任何方法可以直接发送标准 IDoc 这很奇怪 因为 IDocs 应该是与 SAP 对话的标准通信工具 有没有人发现是否
  • 如何在运行时获取和设置 Robot Framework(Ride) 中的默认输出目录

    我想将所有输出文件移动到自定义位置 即基于运行时日期时间创建的运行目录 在 TestSetup 中按日期时间创建输出文件夹 我有函数 Process Output files 它将文件移动到运行文件夹 Run1 Run2 Run3 文件夹
  • 使用输入变量时 Postgres 的运行速度要慢得多

    我在 Postgres 8 3 5 中有一个函数 可以从多个表中选择数据并将结果转储到单个表中 create or replace function test function 2 startdate timestamp enddate t
  • 使用 ImageMagick 和 Rails 进行像素 RGB

    我目前正在使用 PaperClip 和 ImageMagick 上传图像 我想获得图像的平均颜色 所以我这样做 使用 before create 挂钩 def get average color img Magick Image read
  • 使用 Office 365 API 的日历或用户时区

    是否可以通过 Office 365 或 Graph API 获取用户或其日历的时区 我知道您可以从特定事件获取开始和结束时区 但这对我没有帮助 抱歉 我们尚不通过 Office 365 或 Graph REST API 支持此功能 这是我们
  • 如何在 PowerShell 复制脚本中正确过滤多个字符串

    我正在使用来自的 PowerShell 脚本这个答案进行文件复制 当我想使用过滤器包含多种文件类型时 就会出现问题 Get ChildItem originalPath filter htm foreach targetFile htmPa
  • JavaScript XML 解析

    有没有一种方法可以在 JavaScript 中循环遍历 XML 节点的直接子节点 而不使用 jquery 或类似的库 我尝试使用 childNodes 但由于某种原因它无法正常工作 childNodes length 返回一个数字 该数字通
  • 环境变量中的 Watson Conversation_Error

    我正在尝试从 GitHub 复制 Watson对话简单节点 js 应用程序 https github com watson developer cloud conversation simple 并在我的本地运行 我已经创建了服务密钥和设置
  • 在 Python 脚本中获取当前的 git 哈希值

    我想在 Python 脚本的输出中包含当前的 git 哈希 作为版本号生成该输出的代码 如何在 Python 脚本中访问当前的 git 哈希值 无需绕过从git命令自己 GitPython是一个非常好的方法来做到这一点和许多其他git东西
  • 如何创建一个仅引导用户在 Google Play 上下载完整版本的存根应用程序?

    只是想创建一个存根应用程序 该应用程序启动后除了引导用户在 Google Play 上下载完整版本之外什么也不做 我假设存根 apk 显然需要相同的包名称 使用相同的证书签名 但版本代码较低 一直只指向 Google Play 产品页面 这
  • ReportNG不提供任何报告

    我听说 ReportNG 创建的报告比 TestNG 的正常报告更好 我尝试创建 ReportNG 报告 但失败了 我正在使用 Eclipse 我已经下载了 ReportNG 并将reportng 1 1 3 jar 和velocity d
  • 如何从 U-Boot 启动裸板二进制文件?

    我们如何从 U Boot 启动独立的裸板二进制文件 不是使用 U Boot 环境运行的独立二进制文件 而不是 Linux 内核 我的要求是使用我的二进制文件重新初始化主板和驱动程序 我可以用我的二进制文件替换启动介质 此处为 NOR 闪存
  • 单击时更改 MenuItem 可见性

    我正试图隐藏一个MenuItem并在选择第一个时使另一个可见 每个 ID 为 pencil R id button routines edit check mark R id button routines edit done 这里是相关代