2016-08-17 12 views
-1

私はアンドロイドの新機能です。 フラグメントをコードで置き換えたいのですが、これは私のコードです。 MainActivity:私はフラグメントを置き換えたときにクラスフラグメントを膨張させる際にエラーが発生しました。

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.administrator.myapplication/com.example.administrator.myapplication.MainActivity}: android.view.InflateException: Binary XML file line #13: Error inflating class fragmet 

答えて

0

よりもむしろあなたの "フラグメント" を使用してこれらのエラーを得たしかし

<fragment 
    android:id="@+id/fra_content" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_below="@id/fra_title" 
    /> 

:ここ

public class MainActivity extends FragmentActivity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    setDefaultFragement(); 
} 
private void setDefaultFragement() { 
    ContentFragment fragment = new ContentFragment(); 
    FragmentManager manager = getSupportFragmentManager(); 
    manager.beginTransaction().replace(R.id.fra_content,fragment).commit(); 
} 
} 

は私ContentFragment

public class ContentFragment extends Fragment { 

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

mylayoutですxml、FrameLayoutを使用します。 XMLでフラグメントを使用する場合は、フラグメントマネージャーの必要がないため、フラグメントを指定する必要があります。

だから、あなたの活動であなたのxmlで

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_below="@id/toolbar" 
    android:id="@+id/content"/> 

FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
ft.setCustomAnimations(enterAnimation, exitAnimation); 
ft.replace(R.id.content, new ContentFragment()); 
ft.commit(); 

そして、あなたのフラグメントで:

public class ContentFragment extends Fragment { 

@Override 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.fragment_content, container, false); 
    return rootView; 
} 
} 
+0

ありがとうございました。私のコードを変更しました。 –

0

setDefaultFragement機能

を交換してください10
+0

違いはわかりません。 –

+0

(android.R.id.content、fragment)を置き換えます。 –

関連する問題