Java 创建并显示“启动新活动”空白布局

Java 创建并显示“启动新活动”空白布局,java,android,android-layout,Java,Android,Android Layout,我在android studio自动生成的MainActivity.java文件中启动新活动,该文件具有导航抽屉 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.infla

我在android studio自动生成的MainActivity.java文件中启动新活动,该文件具有导航抽屉

@Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_main, container, false);
            startActivity(new Intent(getActivity(), Dishes.class));
这是我的diseass.java代码

public class Dishes extends FragmentActivity {
//private Context context;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //context = Dishes.this;

    //fragment main s shown, but no original navigation drawer??
    setContentView(R.layout.fragment_main);

    new getData().execute("..");
}
ActivityMain.xml

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.app.MainActivity">

<FrameLayout
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<fragment android:id="@+id/navigation_drawer"
    android:layout_width="@dimen/navigation_drawer_width"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:name="com.app.NavigationDrawerFragment" />

</android.support.v4.widget.DrawerLayout>


问题是,在我开始新的活动之后,新的布局被创建并显示(我假设),我无法访问旧的导航抽屉。如何修复它?

因为您的主要活动已经有了抽屉,
为了能够访问导航抽屉:
您需要扩展MainActivity(使用抽屉创建一个基本活动,所有类都将扩展它)
在布局xml中,您可以创建一个包含抽屉和布局的父布局。例如,LinearLayout,它将根据您调用的活动的布局动态膨胀。
参考:


按照以下步骤操作:

  • 根据您的目标API制作一个片段活动/活动,抽屉(我相信)中有一个框架布局(如果没有,则添加)作为顶部显示的布局(即当您的应用程序启动时)和抽屉(通常从左侧滑动),抽屉可以是列表或根据您的要求的其他布局
  • 在FragmentActivity的onCreate方法中,加载此FrameLayout中上面第一张图像中显示的选项卡
  • 然后,根据抽屉中执行的操作或选项卡活动,在FrameLayout中将当前片段替换为所需片段

  • 这是我使用导航抽屉和片段的方式。如果不清楚,请告诉我,或者您需要一些与之相关的片段

    即使使用back按钮也不行?back按钮在onCreate()中工作(返回到第一个屏幕),您不调用setContentView(MyLayouFile);如果I
    setContentView(R.layout.fragment_main),则不会发生任何更改。如果I
    setContentView(R.layout.activity\u main),应用程序中断您必须具有活动的布局。或者它将显示为空白。我认为您不能重用调用活动中的布局。您似乎试图为被调用的活动提供片段的布局(?),然后是其容器的布局(?)。这显然是错误的。@Rokas请检查我编辑的答案中的链接,您的要求是否不同(?)它看起来很容易实现,但看起来也很脏。也许我可以使用
    FragmentActivity
    而不是
    Activity
    实现同样的效果?是的,它将是FragmentActivity,而您将创建片段,但是我不认为这个概念的其余部分会有太大的改变:)或者..这些可能会对你有所帮助:记住,你将要使用的所有屏幕,包括选项卡式屏幕,都应该是片段好的,我用FragmentActivity代替activity,添加了
    setContentView
    ,现在它显示了我想要的片段,但仍然没有导航抽屉。我已经更新了我的问题。你能添加代码片段吗?太好了。我有代码,但想让你先试试。:)请查看这篇简单而精彩的教程。最重要的是工作。我相信你会理解它的工作原理。如果你有什么困难,请告诉我。完成后,我将帮助您在主页上获得选项卡式屏幕。Happ编码:)这是我的荣幸希望你也能理解FragmentActivity,我强调FragmentActivity的唯一原因是为了确保你的应用程序也能向后兼容。玩得开心。:)