如何在片段中使用与活动中不同的菜单?

     2023-02-26     86

关键词:

【中文标题】如何在片段中使用与活动中不同的菜单?【英文标题】:How to use different menu in fragment than in activity? 【发布时间】:2016-11-13 15:39:29 【问题描述】:

我想为我的主要活动创建一个菜单,并为包含在主要活动中的片段提供一个菜单。当片段可见时,应删除主活动菜单并膨胀片段菜单。我试图实现这一点,但结果如下:

主活动菜单 sn-p 本身:

显示片段时的主活动菜单sn-p:

尽管创建并扩充了片段菜单,但我显然没有替换主活动中的菜单。

这里是负责此操作的 Activity 中的代码:

@Override
public boolean onCreateOptionsMenu(Menu menu) 
    // Inflate the menu; this adds items to the action bar if it is present.
    // Depending on which fragment is used display different actions.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;

这是片段中负责此操作的代码:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) 
setHasOptionsMenu(true);


@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) 
    inflater.inflate(R.menu.friend_menu, menu);

这里是friend_menu.xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
    android:icon="@drawable/ic_person_add_black_24dp"
    android:id="@+id/nav_person_add"
    android:title="Add people"
    app:showAsAction="ifRoom" />

</menu>

如何获得我想要的菜单(没有搜索操作和 add_friend 操作)?我意识到从活动中管理它可能更简单,并且只有在片段显示时才会膨胀特定的片段菜单,就像活动中的评论说:// Depending on which fragment is used display different actions.

【问题讨论】:

【参考方案1】:

如果您想保持这种结构,可以尝试clear() 菜单。

在你的Fragment

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) 
    menu.clear(); // Remove all existing items from the menu, leaving it empty as if it had just been created.
    inflater.inflate(R.menu.friend_menu, menu);

【讨论】:

如何在片段中的 recyclerView 上打开不同的活动?

】如何在片段中的recyclerView上打开不同的活动?【英文标题】:HowtoopenadifferentactivityonrecyclerViewinfragment?【发布时间】:2021-11-0211:35:30【问题描述】:我正在使用recyclerView在home片段中显示我的listItems。但是我一直坚持单击项目时... 查看详情

在android中使用底部导航的最佳实践:活动与片段

】在android中使用底部导航的最佳实践:活动与片段【英文标题】:Bestpractisetousebottomnavigationinandroid:activityvsfragment【发布时间】:2019-12-1715:43:32【问题描述】:我来自iOS,正在努力将iOS应用移植到Android上。在iOS中有故事板,您可... 查看详情

如何在不使用片段的情况下访问所有活动中的导航抽屉?

】如何在不使用片段的情况下访问所有活动中的导航抽屉?【英文标题】:Howtoaccessnavigationdrawerinallactivitieswithoutusingfragments?【发布时间】:2014-03-2907:27:47【问题描述】:我想在所有活动中访问导航抽屉。我不想使用片段。相反... 查看详情

如何在 Fragment 实现中显示不同的活动?

】如何在Fragment实现中显示不同的活动?【英文标题】:HowtoshowdifferentActivitiesinFragmentimplementation?【发布时间】:2011-10-0508:06:58【问题描述】:这是我第一次使用android片段。我正在关注thistutorial来实现一个片段。本教程一切正常... 查看详情

从意图活动访问片段方法(代码片段)

...用setListener()。我正在使用意图启动新活动。我无法找到如何在新活动中获取片段实例或如何在片段中调用方法。任何帮助都会很棒!答案片段与活动紧密耦合。您始终需要创建活动作为片段的主机。来自documentation:片段表示活... 查看详情

如何在多片段活动中处理 onContextItemSelected?

】如何在多片段活动中处理onContextItemSelected?【英文标题】:HowtohandleonContextItemSelectedinamultifragmentactivity?【发布时间】:2011-07-1422:43:22【问题描述】:我目前正在尝试调整我的应用程序以使用“Androidv4兼容性库”,以便为Android1.... 查看详情

如何在产品风味中使用不同的启动器活动?

】如何在产品风味中使用不同的启动器活动?【英文标题】:Howtouseadifferentlauncheractivityinaproductflavor?【发布时间】:2015-11-2600:56:31【问题描述】:我正在做一个Android库项目,在默认的src/main/AndroidManifest.xml中,MainActivity是启动器... 查看详情

在不同的 Android 活动中维护与服务器的套接字

...持与服务器的持续联系(获取状态和更新等)。我想知道如何让用户更改为不同的活动类别,同时仍保持 查看详情

根据父活动在片段中调用不同的方法

】根据父活动在片段中调用不同的方法【英文标题】:Calldifferentmethodinfragmentbasedonparentactivity【发布时间】:2021-12-2008:56:41【问题描述】:我在我的应用程序中有一个包含一些输入字段的片段,我在两个不同的活动中显示这个片... 查看详情

如何访问活动内部/从活动中的片段视图组件

】如何访问活动内部/从活动中的片段视图组件【英文标题】:Howtoaccessfragmentviewscomponentsinside/fromactivity【发布时间】:2021-06-1305:01:47【问题描述】:我将导航抽屉与新组件NavController一起使用,我有七个片段,每个片段代表导航... 查看详情

如何在不同的 android 活动中使用 Java.sql.Connection?

】如何在不同的android活动中使用Java.sql.Connection?【英文标题】:HowcaniuseJava.sql.Connectioninadifferentandroidactivity?【发布时间】:2015-10-1409:55:36【问题描述】:我正在尝试创建一个小的android应用程序。我的问题是:在第一个活动中创... 查看详情

如何使用可重用的活动在我的应用程序中定义不同的活动流?

】如何使用可重用的活动在我的应用程序中定义不同的活动流?【英文标题】:HowcanIdefinedifferentactivitiesflowsinmyappusingreusableactivities?【发布时间】:2016-08-1606:33:35【问题描述】:所以,希望这个问题没有被模糊地描述,我的情况... 查看详情

如何在wordpress类别侧边栏菜单中显示活动子菜单

】如何在wordpress类别侧边栏菜单中显示活动子菜单【英文标题】:howtodisplayactivesubmenuinwordpresscategorysidebarmenu【发布时间】:2020-03-2017:03:08【问题描述】:我想在类别侧边栏菜单处于活动/打开状态时显示一个子菜单。我尝试使用... 查看详情

如何使用 Google 登录从不同的活动中退出用户?

】如何使用Google登录从不同的活动中退出用户?【英文标题】:HowtosignoutauserfromadifferentactivitywithGoogleSign-in?【发布时间】:2019-05-3114:21:48【问题描述】:在我的登录活动中,我正在使用Google登录用户登录。我希望注销按钮处于不... 查看详情

androidwebview问题:如何在单个活动中打开具有不同按钮的不同页面(代码片段)

...开一个网页。我必须创建数百页来容纳不同的英雄。题:如何按下时每个按钮打开一个不同的页面?当前代码:WebViewwebView=(WebView)findViewById(R.id.webview);webView.loadUrl("ht 查看详情

如何使用 `renderUI` 响应式更新 Shiny 应用程序中的活动菜单项?

】如何使用`renderUI`响应式更新Shiny应用程序中的活动菜单项?【英文标题】:HowcanIreactivelyupdatetheactivemenuIteminaShinyappusing`renderUI`?【发布时间】:2021-03-2119:16:17【问题描述】:我正在构建一个闪亮的应用程序,它可以从数据框中... 查看详情

如何在 Android 工作室中从现有活动创建片段

】如何在Android工作室中从现有活动创建片段【英文标题】:HowtocreatefragmentsinAndroidstudiosfromexistingactivities【发布时间】:2016-05-0221:35:09【问题描述】:我在网上搜索过,但仍然无法找到有关如何从现有活动创建片段的任何帮助。... 查看详情

带有许多活动的滑动菜单

...在thatquestion中有提到。其中一些,我检查过的实现,正在使用一个活动来显示菜单和数据。当用户从菜单中选择项目时,不会启动新的活动。因此,一个活动用于程序的许多部分,在一个视图中显示不同的数据。恕我直言,为所... 查看详情