为何出现menu类型不匹配与override错误?代码无法运行求助
问题修复方案
1. 解决override不匹配错误
你的onCreateOptionsMenu函数签名不符合Android标准重写规则,正确的签名必须严格匹配系统定义的方法:
override fun onCreateOptionsMenu(menu: Menu): Boolean { // 菜单加载逻辑写在这里 return super.onCreateOptionsMenu(menu) }
需要确认两点:
- 函数前必须加
override关键字,否则系统无法识别这是重写父类方法 - 参数类型必须是
Menu,返回值必须是Boolean,不能随意修改
2. 解决菜单加载的类型不匹配错误
错误提示的核心是你调用menuInflater.inflate()时传错了参数。inflate方法的第二个参数要求传入目标Menu对象,而不是上下文(比如this)。正确写法是:
menuInflater.inflate(R.menu.你的菜单文件名, menu)
把第二个参数替换成函数传入的menu对象即可。
完整可运行示例
override fun onCreateOptionsMenu(menu: Menu): Boolean { menuInflater.inflate(R.menu.main_menu, menu) return true // 若需保留父类默认逻辑,可返回super.onCreateOptionsMenu(menu) }
内容的提问来源于stack exchange,提问作者Giancarix117
相关产品推荐
相关产品推荐

