如何解决从片段访问活动菜单项并隐藏 onButton 点击 android
在我的 ChatRoomActivity 中,我有一个菜单,其中包含两个菜单项 audioCall 和 videoCall
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/chat_phone"
android:icon="@drawable/ic_phone"
android:title="Phone"
app:showAsAction="ifRoom" />
<item
android:id="@+id/chat_video"
android:icon="@drawable/ic_video"
android:title="Video"
app:showAsAction="ifRoom" />
</menu>
活动内部有 ConversationFragment,根据某些按钮操作,我想阻止用户进行音频/视频通话。所以我想访问托管 ChatRoomActivity 的 menuItems。我试过下面的代码
class ConversationFragment : Fragment(R.layout.conversation_fragment) {
private var chatPhoneMenuItem: MenuItem? = null
private var chatVideoMenuItem: MenuItem? = null
override fun onPrepareOptionsMenu(menu: Menu) {
super.onPrepareOptionsMenu(menu)
chatPhoneMenuItem = menu.findItem(R.id.chat_phone)
chatVideoMenuItem = menu.findItem(R.id.chat_video)
}
// And the function called in the button click
private fun setUpCallButtons() {
// MenuItems are null
chatPhoneMenuItem?.isVisible = chatRoomViewModel.phonePrivilege == 1
chatVideoMenuItem?.isVisible = chatRoomViewModel.videoPrivilege == 1
}
但是,当代码到达那个点时,我在 chatPhoneMenuItem 和 chatVideoMenuItem 中得到 null
如何获取菜单项?
更新 我注意到当我按下主页按钮然后再次返回时,菜单可以访问。经过一番研究,我发现 onCreateOptionsMenu 是在活动 onCreate 方法之后调用的,也可能是在 Fragment onCreate 方法之后调用的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。