Java 创建我的第一个应用程序,对主要活动和片段感到困惑

Java 创建我的第一个应用程序,对主要活动和片段感到困惑,java,android,Java,Android,我对此非常陌生,但对创建我的第一个应用程序非常感兴趣。 我设法(不知何故)让导航抽屉在我的应用程序中工作,主要是因为遵循了YouTube教程 我有我的主要活动和其他5个片段文件,其中一个称为“主”片段。 每当我按下导航栏上的“主页”时,我都希望它将用户带到主活动页面,这是用户第一次打开应用程序时当前引导的页面。 因此,本质上我希望在主屏幕上的活动中出现一个片段。 我不知道如何做到这一点,并且已经尝试查看片段文档,这让我感到困惑 有人能帮忙吗 总结: 1.要在主页上显示片段 2.我想这样做的唯一原

我对此非常陌生,但对创建我的第一个应用程序非常感兴趣。
我设法(不知何故)让导航抽屉在我的应用程序中工作,主要是因为遵循了YouTube教程

我有我的主要活动和其他5个片段文件,其中一个称为“主”片段。
每当我按下导航栏上的“主页”时,我都希望它将用户带到主活动页面,这是用户第一次打开应用程序时当前引导的页面。
因此,本质上我希望在主屏幕上的活动中出现一个片段。
我不知道如何做到这一点,并且已经尝试查看片段文档,这让我感到困惑

有人能帮忙吗

总结:
1.要在主页上显示片段

2.我想这样做的唯一原因是,我在主活动上放置的所有内容都会出现在每个片段页面上,以将片段添加到活动或框架活动中,它需要一个容器。该容器应该是一个“Framelayout”,可以包含在xml中,或者您可以使用默认容器,如“android.R.id.content”来删除或替换活动中的片段

XML文件

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<!-- Framelayout to display Fragments -->
<FrameLayout
    android:id="@+id/frame_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<ImageView
    android:id="@+id/imagenext"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_margin="16dp"
    android:src="@drawable/next" />
更新

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<!-- Framelayout to display Fragments -->
<FrameLayout
    android:id="@+id/frame_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<ImageView
    android:id="@+id/imagenext"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_margin="16dp"
    android:src="@drawable/next" />
对于你的问题,
您想在按下主页按钮时显示主要活动,以便使用Intent并发送Intent数据,然后将该数据接收到主活动中,并根据它使用片段事务来显示活动中的片段

,正如@Noise Generator评论的那样,您只需将片段替换为主片段,如下所示:-

如果您只想将片段用作活动的顶级内容视图,那么

    Fragment newFragment = new HomeFragment();
    FragmentTransaction ft = getFragmentManager().beginTransaction();
    ft.add(android.R.id.content, newFragment).commit();
另一方面,正如@Dheeraj Joshi所述,您必须创建一个资源,然后替换它

    Fragment newFragment = new HomeFragment();
    FragmentTransaction ft = getFragmentManager().beginTransaction();
    ft.replace(R.id.frame_container, newFragment).commit();

片段就像活动上的(交互式)“贴纸”。你只需交换它们。但它们本身并不是活动。因此,只需将您当前的片段替换为“Home”片段即可。请将您的代码显示为。在你了解它的工作原理之前,请删除除至少2个片段以外的所有片段。因此,目前在我的主要活动中,我所拥有的是启用导航栏的代码,仅此而已。我不知道如何将主活动链接到一个片段,以便它显示它。我正在使用android.support.v4.widget.drawerlayout@NoiseGenerator,我没有当前片段。页面是空白的,您不需要“将活动链接到片段”。片段被“粘”到活动上,然后最终被“解粘”并替换为其他活动。片段也可以直接在XML中定义,尽管我刚才说的是
Hi,谢谢你的回答。不幸的是,我是一个超级noob,仍然不明白。我到底需要更新/添加什么到我的XML文件中?您插入了一些代码,但我不确定它是做什么的:(@SW18类似于xml文件中的)只需添加一个FrameLayout,然后使用java代码动态添加一个片段,当您说“替换您的片段”时很遗憾,我不明白。我有activity_main.xml和fragment_home.xml。我应该替换什么?当他们说替换你的片段时,这意味着,用另一个片段替换一个片段。你有activity_main.xml和fragment_home.xml,你不需要替换任何东西,只需将片段放在activity_main.xml的容器中,试着用h第一个解决方案,看看如果它符合您的要求会发生什么,然后一切都好,否则就按照@Dheeraj Joshi的注释去做——那么容器是什么呢
    Fragment newFragment = new HomeFragment();
    FragmentTransaction ft = getFragmentManager().beginTransaction();
    ft.replace(R.id.frame_container, newFragment).commit();