android:来自片段的菜单项单击事件

Posted

技术标签:

【中文标题】android:来自片段的菜单项单击事件【英文标题】:android: menu item click event from fragment 【发布时间】:2014-10-06 12:32:22 【问题描述】:

我有一个带有操作栏的应用程序。并且菜单被 mainactivity 夸大了。我想拦截片段内的点击事件,但我不知道怎么做?你能帮我吗? 主活动

    @Override
public boolean onCreateOptionsMenu(Menu menu) 
    getMenuInflater().inflate(R.menu.home, menu);

home.xml

        <menu>
        <item
            android:id="@+id/action_refresh"
            android:title="@string/menu_refresh"/>
    </menu>

我想刷新片段中的列表

【问题讨论】:

片段使用ViewPager 【参考方案1】:

如果您想捕获对您的项目的点击,请实施

public boolean onOptionsItemSelected(MenuItem item)

然后:

如果您的活动包含片段,则系统首先调用 onOptionsItemSelected() 用于活动,然后用于每个片段(在 添加每个片段的顺序),直到一个返回 true 或 all 片段已被调用。

可以关注官方参考:

http://developer.android.com/guide/topics/ui/menus.html

【讨论】:

谢谢,它有效!我将创建刷新方法,但如果我有一些错误,我会联系你。谢谢 @mromer,我在片段中实现了onOptionItemSelected(MenuItem) 方法,但它不起作用。这个回调在活动而不是片段一中被调用,即使没有与我的点击事件匹配的资源id @Israel 您在活动中的方法中返回 false 吗? developer.android.com/reference/android/app/…

以上是关于android:来自片段的菜单项单击事件的主要内容,如果未能解决你的问题,请参考以下文章

处理菜单项点击事件 - Android

使用导航从工具栏菜单项单击在片段之间传递数据 - Kotlin

Android:通过更改片段更改菜单项的可见性

菜单项单击事件根据索引

Android - 导航抽屉 - 与动态菜单项重叠的片段

片段的菜单项 onClickListener