2016-08-23 4 views
0

Ich versuche zu verstehen, wie Fragmente funktionieren, aber ich hatte bisher keinen Erfolg. Dies ist nur ein Beispiel, nichts nützliches. Wenn ich versuche, ein Fragment zum Layout hinzuzufügen, bekomme ich immer den gleichen Fehler. Ich weiß nicht, wasAndroid: Kann Klassenfragment nicht aufblasen

Fragment Klasse

package com.app.danieltavares.teste; 

import android.app.Fragment; 
import android.os.Bundle; 
import android.support.annotation.Nullable; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 


public class TestFragment extends Fragment{ 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     return inflater.inflate(R.layout.testefrag,container,false); 

    } 
} 

ActivityClass

package com.app.danieltavares.teste; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 
} 

Layout-Fragment

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <RadioButton 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:text="diusdb"/> 

</LinearLayout> 

Layout, das die Fragmente verwendet fehlt

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.app.danieltavares.teste.MainActivity"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Hello World!" /> 
    <fragment 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:name="com.app.danieltavares.teste.TestFragment" 
     tools:layout="@layout/testefrag"></fragment> 
</RelativeLayout> 

Logcat

08-23 18:35:21.867 15308-15308/com.app.danieltavares.teste E/AndroidRuntime: FATAL EXCEPTION: main 
                     Process: com.app.danieltavares.teste, PID: 15308 
                     java.lang.RuntimeException: Unable to start activity ComponentInfo{com.app.danieltavares.teste/com.app.danieltavares.teste.MainActivity}: android.view.InflateException: Binary XML file line #16: Binary XML file line #16: Error inflating class fragment 
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646) 
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) 
                      at android.app.ActivityThread.-wrap12(ActivityThread.java) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) 
                      at android.os.Handler.dispatchMessage(Handler.java:102) 
                      at android.os.Looper.loop(Looper.java:154) 
                      at android.app.ActivityThread.main(ActivityThread.java:6077) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 
                      Caused by: android.view.InflateException: Binary XML file line #16: Binary XML file line #16: Error inflating class fragment 
                      Caused by: android.view.InflateException: Binary XML file line #16: Error inflating class fragment 
                      Caused by: java.lang.IllegalArgumentException: Binary XML file line #16: Must specify unique android:id, android:tag, or have a parent with an id for com.app.danieltavares.teste.TestFragment 
                      at android.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2282) 
                      at android.app.FragmentController.onCreateView(FragmentController.java:98) 
                      at android.app.Activity.onCreateView(Activity.java:5884) 
                      at android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView(BaseFragmentActivityHoneycomb.java:34) 
                      at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:80) 
                      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:777) 
                      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727) 
                      at android.view.LayoutInflater.rInflate(LayoutInflater.java:858) 
                      at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:518) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:426) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:377) 
                      at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276) 
                      at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:136) 
                      at com.app.danieltavares.teste.MainActivity.onCreate(MainActivity.java:11) 
                      at android.app.Activity.performCreate(Activity.java:6664) 
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) 
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599) 
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) 
                      at android.app.ActivityThread.-wrap12(ActivityThread.java) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) 
                      at android.os.Handler.dispatchMessage(Handler.java:102) 
                      at android.os.Looper.loop(Looper.java:154) 
                      at android.app.ActivityThread.main(ActivityThread.java:6077) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 

Antwort

0
Caused by: java.lang.IllegalArgumentException: Binary XML file line #16: Must specify unique android:id, android:tag, or have a parent with an id for com.app.danieltavares.teste.TestFragment 

ein android:id Attribut auf das <fragment> Element in Ihrem Layout-Datei hinzufügen.

Verwandte Themen