2016-08-23 10 views
0

フラグメントの仕組みを理解しようとしていますが、これまでのところ成功していません。 これは単なる例ではありません。 レイアウトにフラグメントを追加しようとすると、常に同じエラーが発生します。 私は断片を使用していますAndroid:クラスフラグメントを拡張できません

断片クラス

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); 
    } 
} 

レイアウトフラグメント

<?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> 

レイアウトが欠落しているのか分からない

<?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) 

答えて

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 

あなたのレイアウトファイル内<fragment>要素にandroid:id属性を追加します。

関連する問題