0

フラグメントを使用しようとしていますが、使用できません。

これは私の主な活動のコードです

public class StartingActivity extends Activity {

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

ここにfragmentexample.xmlがあります

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

<fragment 
    android:name="com.example.demos.Fragment1"
    android:id="@+id/idfragment1"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    />

<fragment 
    android:name="com.example.demos.Fragment2"
    android:id="@+id/idfragment2"
    android:layout_width="0dip"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    />

ここにクラスFragment1があります

 public class Fragment1 extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    return inflater.inflate(R.layout.fragment1, container, false);
}

}

ここにfragment1.xmlがあります

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

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="This is Fragment1" />

</LinearLayout>

class Fragment2 と fragment2.xml は Fragment1 と fragment1.xml とまったく同じです

しかし、このコードは機能しておらず、エラーが発生しています

03-06 13:43:50.011: E/AndroidRuntime(26696): FATAL EXCEPTION: main
03-06 13:43:50.011: E/AndroidRuntime(26696): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.demos/com.example.demos.StartingActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class fragment
03-06 13:43:50.011: E/AndroidRuntime(26696):    ... 11 more
4

2 に答える 2

1

Activity は FragmentActivity を拡張する必要があります

于 2013-03-06T08:35:52.873 に答える
0

Fragment1 クラスと Fragment2 クラスの両方にデフォルト コンストラクターを追加します。

以下のように:

 public class Fragment2 extends Fragment {

     public Fragment2() {
        // TODO Auto-generated constructor stub
    }

     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
             Bundle savedInstanceState) {
         // TODO Auto-generated method stub
         return inflater.inflate(R.layout.fragment2, container, false);
     }

}

これはうまくいくはずです。

于 2013-03-06T08:37:15.863 に答える