无法点击菜单项

问题描述 投票:0回答:1

我试图使用菜单主机创建一个菜单项,我可以看到该项目,但是当我单击它时没有任何反应,onMenuItemSelected 未被调用,没有记录任何木材日志。

我在这里做错了什么吗

    override fun onCreateView(
    inflater: LayoutInflater,
    container: ViewGroup?,
    savedInstanceState: Bundle?
): View {

    val menuHost: MenuHost = requireActivity()
    menuHost.addMenuProvider(object : MenuProvider {
        override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
            menuInflater.inflate(R.menu.electricity_tar_link, menu)
        }

        override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
            Timber.d("xxx - onMenuItemSelected")
            return when (menuItem.itemId) {
                R.id.skipMI -> {
                    Timber.d("xxx - onMenuItemSelected - skip")
                    onTarListener.onElecTarSkip()
                    true
                }
                else -> {
                    Timber.d("xxx - onMenuItemSelected - else")
                    false
                }
            }
        }
    }, viewLifecycleOwner, Lifecycle.State.RESUMED)

}

托管片段的活动没有任何与菜单相关的代码

ElecTarActivity 类:InjectionFragmentActivity(), OnElecProviderListener, OnElecTarListener {

// region Setup
lateinit var binding: AppBarActivityBinding

override val toolbar: Toolbar
    get() = binding.appBar.toolbar

override val coordinatorLayout: CoordinatorLayout
    get() = binding.coordinatorLayout

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    binding = AppBarActivityBinding.inflate(layoutInflater)
    setContentView(binding.root)
    setAppBar(toolbar, showHomeAsUp = true)

}
android kotlin android-menu
1个回答
0
投票

缺少使其在

onCreateMenu
方法中工作的代码是

     val skipMI = menu.findItem(R.id.skipMI)
                skipMI?.actionView?.setOnClickListener { onMenuItemSelected(skipMI) }
© www.soinside.com 2019 - 2024. All rights reserved.