You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MenuHost菜单项点击无响应:onMenuItemSelected未触发求助

问题排查与解决

核心原因:Toolbar未正确关联为Activity的ActionBar

你的代码中,Activity虽配置了Toolbar,但如果setAppBar方法内部未调用setSupportActionBar(toolbar),Toolbar仅作为普通View存在,无法与MenuHost的菜单系统绑定,导致点击事件无法传递到onMenuItemSelected方法。

具体修复步骤

  1. 将Toolbar关联为SupportActionBar
    修改Activity的onCreate方法,在调用setAppBar后(或直接在setAppBar方法内部)添加如下代码:

    setSupportActionBar(toolbar)
    

    若setAppBar是自定义封装方法,检查其内部是否包含该逻辑,无则补充。

  2. 验证菜单布局无拦截属性
    确认R.menu.electricity_tar_link中的skipMI菜单项未设置android:onClick属性(该属性会直接拦截点击事件,导致MenuProvider无法接收),示例正确布局如下:

    <menu xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:app="http://schemas.android.com/apk/res-auto">
        <item
            android:id="@+id/skipMI"
            android:title="跳过"
            app:showAsAction="ifRoom"/>
    </menu>
    
  3. 确认Activity未拦截菜单事件
    若InjectionFragmentActivity继承自AppCompatActivity,确保未重写onOptionsItemSelected并直接返回true(会阻断事件向下传递),若有重写需保留super.onOptionsItemSelected(item)调用。

完成上述修改后,重新运行应用即可触发onMenuItemSelected方法并输出日志。

内容的提问来源于stack exchange,提问作者BRDroid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 09:07:16