2011-11-08 17 views
3

私のアプリをICS用に準備するために、断片の周りに頭を抱えようとしています。基本的なフラグメントレイアウトの難点

私はあなたが持つことができる最も基本的な断片のアプリケーションを取得するために次のファイルがあります。それは、起動時にこれを持っている必要があります:テキストビュー "フラグメント1"を持つ1つのフラグメントレイアウトとその隣に、 "フラグメント2"を持つ別のフラグメントレイアウト。

私のパッケージ名があるcom.mwerner.fragments

私のファイルは、以下のとおりです。

  • FragmentsActivity.java
  • ExamplesFragment.java
  • ExamplesFragment2.java
  • examples_fragment.xml
  • examples_fragment2.xml
  • main.xml

FragmentsActivity.javaためのコードは次のとおりです。

package com.mwerner.fragments; 

import android.app.Activity; 
import android.os.Bundle; 

public class FragmentsActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
    } 
} 

ExamplesFragment.java

package com.mwerner.fragments; 

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

public class ExamplesFragment extends Fragment { 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     return inflater.inflate(R.layout.examples_fragment, container, false); 
    } 
} 

ExamplesFragment2.java

package com.mwerner.fragments; 

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

public class ExamplesFragment2 extends Fragment { 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     return inflater.inflate(R.layout.examples_fragment2, container, false); 
    } 
} 

examples_fragment.xmlファイルちょうどエラー

11-07 18:12:12.519: E/AndroidRuntime(696): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mwerner.fragments/com.mwerner.fragments.FragmentsActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class fragment 

と、起動時にアプリがクラッシュは、あなたがここで間違っているものを私に教えてくださいすることができ

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" > 
<fragment 
     class="com.mwerner.fragments$ExamplesFragment" 
     android:id="@+id/list" 
     android:layout_weight="1" 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     /> 

<fragment 
     class="com.mwerner.fragments$ExamplesFragment2" 
     android:id="@+id/viewer" 
     android:layout_weight="2" 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" /> 


</LinearLayout> 

:それでextview ... ここでは、main.xmlのコードですか?私はかなりのフラグメントをGoogleの開発者ページからコードをコピー/貼り付けました。

+0

これを修正しましたか?あなたが間違った「断片」をインポートしているのに気付きました。 'android.support.v4.app.Fragment'の代わりに' android.app.Fragment'を使うべきです。 – adneal

+0

正しいです、android.app.Fragmentをインポートする必要があります。 – AshesToAshes

答えて

5

レイアウトxmlでフラグメントへのパスを誤って定義しました。クラスの属性を修正してください。これを試してみてください:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" > 
<fragment 
     class="com.mwerner.fragments.ExamplesFragment" 
     android:id="@+id/list" 
     android:layout_weight="1" 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     /> 

<fragment 
     class="com.mwerner.fragments.ExamplesFragment2" 
     android:id="@+id/viewer" 
     android:layout_weight="2" 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" /> 


</LinearLayout> 
+0

私はまだ同じエラーが発生します: 11-07 18:39:35.524:E/AndroidRuntime(790):java.lang.RuntimeException:アクティビティを開始できませんComponentInfo {com.mwerner.fragments/com.mwerner.fragments。 FragmentsActivity}:android.view.InflateException:バイナリXMLファイル行#6:クラスフラグメントを膨張させるエラー – Killerpixler

+0

あなたは私を助けることができますか?私はあなたのXMLファイルを試しましたが、上記のエラー(起動時にクラッシュ)が発生します。どんな助けも非常に高く評価されるでしょう。 – Killerpixler

+0

同じ問題がありました。私の問題はクラス属性でもありました。レイアウトで定義した私の名前空間は正しくありませんでした(私のFragmentクラスの名前空間と一致しませんでした)。 – AshesToAshes

0

私は同じエラーを被っ使用してフラグメント上の私の最初のプログラムを書いていたときFragmentActivity

public class FragmentsActivity extends FragmentActivity { 
     /** Called when the activity is first created. */ 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 
     } 
    } 
+0

コメントの対象となるバージョンが不明ですが、これを行うと、私はまだinflate例外が発生します。ダイアログを拡張するには、アクティビティを維持する必要があります。 – AshesToAshes

0

を拡張してみてください。 「Activity」を拡張する代わりに、ランチャーのアクティビティで「FragmentActivity」を拡張します。

+0

コメントのバージョンは不明ですが、これを行うと、私はまだinflate例外が発生します。ダイアログを拡張するには、アクティビティを維持する必要があります。 – AshesToAshes

関連する問題