Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在活动中添加片段_Java_Android_Xml_Android Fragments - Fatal编程技术网

Java 如何在活动中添加片段

Java 如何在活动中添加片段,java,android,xml,android-fragments,Java,Android,Xml,Android Fragments,我想在我的活动中添加片段,但我不知道如何才能做到这一点。我在堆栈溢出中检查了多个答案,但我没有得到它。请帮助我 这是我的活动布局(Activity_home.xml): 这是我的片段布局(menu_Fragment.xml): 当我运行应用程序时,它会崩溃并显示此错误: E/AndroidRuntime: FATAL EXCEPTION: main Process: com.foodshahi.www.foodshahi, PID: 5330

我想在我的活动中添加片段,但我不知道如何才能做到这一点。我在堆栈溢出中检查了多个答案,但我没有得到它。请帮助我

这是我的活动布局(Activity_home.xml):

这是我的片段布局(menu_Fragment.xml):

当我运行应用程序时,它会崩溃并显示此错误:

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.foodshahi.www.foodshahi, PID: 5330
                  java.lang.RuntimeException: Unable to start activity ComponentInfo{com.foodshahi.www.foodshahi/com.foodshahi.www.foodshahi.Home}: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class fragment
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2572)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2654)
                      at android.app.ActivityThread.-wrap11(ActivityThread.java)
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1488)
                      at android.os.Handler.dispatchMessage(Handler.java:111)
                      at android.os.Looper.loop(Looper.java:207)
                      at android.app.ActivityThread.main(ActivityThread.java:5728)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
                   Caused by: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class fragment
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
                      at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
                      at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
                      at com.foodshahi.www.foodshahi.Home.onCreate(Home.java:32)
                      at android.app.Activity.performCreate(Activity.java:6331)
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1113)
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2519)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2654) 
                      at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1488) 
                      at android.os.Handler.dispatchMessage(Handler.java:111) 
                      at android.os.Looper.loop(Looper.java:207) 
                      at android.app.ActivityThread.main(ActivityThread.java:5728) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679) 
                   Caused by: android.view.InflateException: Binary XML file line #0: Error inflating class fragment
                      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:782)
                      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
                      at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)
                      at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
                      at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 
                      at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 
                      at com.foodshahi.www.foodshahi.Home.onCreate(Home.java:32) 
                      at android.app.Activity.performCreate(Activity.java:6331) 
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1113) 
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2519) 
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2654) 
                      at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1488) 
                      at android.os.Handler.dispatchMessage(Handler.java:111) 
                      at android.os.Looper.loop(Looper.java:207) 
                      at android.app.ActivityThread.main(ActivityThread.java:5728) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679) 
                   Caused by: java.lang.NullPointerException
                      at java.lang.VMClassLoader.findLoadedClass(Native Method)
                      at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:362)
                      at java.lang.ClassLoader.loadClass(ClassLoader.java:499)
                      at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
                      at android.support.v4.app.Fragment.isSupportFragmentClass(Fragment.java:499)
                      at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:3637)
                      at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:111)
                      at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:338)
                      at android.support.v4.app.BaseFragmentActivityApi14.onCreateView(BaseFragmentActivityApi14.java:39)
                      at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:67)
                      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:754)
                      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
                      at android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 
                      at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
                      at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 
                      at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 
                      at com.foodshahi.www.foodshahi.Home.onCreate(Home.java:32) 
                      at android.app.Activity.performCreate(Activity.java:6331) 
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1113) 
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2519) 
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2654) 
                      at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1488) 
                      at android.os.Handler.dispatchMessage(Handler.java:111) 
                      at android.os.Looper.loop(Looper.java:207) 
                      at android.app.ActivityThread.main(ActivityThread.java:5728) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679) 
试着改变

<fragment
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/home_fragment">


如果使用
android:name=“com.example.android.fragments.MyFragment”
使用
,则应在xml中添加片段类详细信息。 在这种情况下,活动中不需要任何代码

由于此信息在xml中不可用,充气器将抛出
InflateException
,您的应用程序将崩溃

请参阅。

如果要以编程方式进行,请添加任何
视图组
最好是
框架布局
,并通过
片段管理器
添加
片段
。此外,还可以添加到默认的
android.R.id.content
,这是添加布局中所有视图的基础
ViewGroup

要将
片段
添加到
活动
框架活动
中,需要 容器。该容器应为“
Framelayout
”,可以是 包含在xml中,或者您可以使用默认容器 如“
android.R.id.content
”删除或替换
活动

例如:

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

首先,您应该使用

  <FrameLayout
    android:id="@+id/content"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1">

</FrameLayout>


还要检查您在类中扩展的片段是否为android.app.Fragment,以及getFragmentManager是否为android.app.Fragment。人们通常会通过扩展android.support.v4.Fragment来产生冲突。请先了解基本的android元素,它的类型以及如何使用它。您试图在不知道片段是什么以及如何在活动中使用的情况下创建应用程序。我的片段中有一个TextView,我想在其上应用click listener。我如何才能做到这一点?是否要在主活动中为
TextView
设置click listener?或者您想将其添加到片段中?TextView位于片段中,我想在其名称上应用click listener,就像
活动
您想在
片段
类中处理它一样。@KamranAli参考此示例
E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.foodshahi.www.foodshahi, PID: 5330
                  java.lang.RuntimeException: Unable to start activity ComponentInfo{com.foodshahi.www.foodshahi/com.foodshahi.www.foodshahi.Home}: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class fragment
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2572)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2654)
                      at android.app.ActivityThread.-wrap11(ActivityThread.java)
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1488)
                      at android.os.Handler.dispatchMessage(Handler.java:111)
                      at android.os.Looper.loop(Looper.java:207)
                      at android.app.ActivityThread.main(ActivityThread.java:5728)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
                   Caused by: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class fragment
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
                      at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
                      at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
                      at com.foodshahi.www.foodshahi.Home.onCreate(Home.java:32)
                      at android.app.Activity.performCreate(Activity.java:6331)
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1113)
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2519)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2654) 
                      at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1488) 
                      at android.os.Handler.dispatchMessage(Handler.java:111) 
                      at android.os.Looper.loop(Looper.java:207) 
                      at android.app.ActivityThread.main(ActivityThread.java:5728) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679) 
                   Caused by: android.view.InflateException: Binary XML file line #0: Error inflating class fragment
                      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:782)
                      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
                      at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)
                      at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
                      at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 
                      at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 
                      at com.foodshahi.www.foodshahi.Home.onCreate(Home.java:32) 
                      at android.app.Activity.performCreate(Activity.java:6331) 
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1113) 
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2519) 
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2654) 
                      at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1488) 
                      at android.os.Handler.dispatchMessage(Handler.java:111) 
                      at android.os.Looper.loop(Looper.java:207) 
                      at android.app.ActivityThread.main(ActivityThread.java:5728) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679) 
                   Caused by: java.lang.NullPointerException
                      at java.lang.VMClassLoader.findLoadedClass(Native Method)
                      at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:362)
                      at java.lang.ClassLoader.loadClass(ClassLoader.java:499)
                      at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
                      at android.support.v4.app.Fragment.isSupportFragmentClass(Fragment.java:499)
                      at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:3637)
                      at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:111)
                      at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:338)
                      at android.support.v4.app.BaseFragmentActivityApi14.onCreateView(BaseFragmentActivityApi14.java:39)
                      at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:67)
                      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:754)
                      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
                      at android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 
                      at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
                      at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 
                      at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 
                      at com.foodshahi.www.foodshahi.Home.onCreate(Home.java:32) 
                      at android.app.Activity.performCreate(Activity.java:6331) 
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1113) 
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2519) 
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2654) 
                      at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1488) 
                      at android.os.Handler.dispatchMessage(Handler.java:111) 
                      at android.os.Looper.loop(Looper.java:207) 
                      at android.app.ActivityThread.main(ActivityThread.java:5728) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679) 
<fragment
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/home_fragment">
<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="150dp" //any particular size
    android:id="@+id/home_fragment"/>
<FrameLayout
    android:id="@+id/frame_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
  <FrameLayout
    android:id="@+id/content"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1">

</FrameLayout>