0

スクロール可能なタブ アクティビティ内で使用するために、アクティビティをフラグメントに変更していました。しかし、私はこの例外を受け取り、このフラグメントをロードします:

FATAL EXCEPTION: main
android.view.InflateException: Binary XML file line #17: Error inflating class fragment
  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697)
  at android.view.LayoutInflater.rInflate(LayoutInflater.java:739)
  at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
  at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
  at com.zhensydow.demo.MainMenuFragment.onCreateView(MainMenuFragment.java:43)
  at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460)
    ....

そして、ロードされた使用済みの (簡略化された) xml は次のとおりです。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    ... >
  <fragment   <<---- LINE #17
    android:id="@+id/mlist"
    android:name="com.zhensydow.demo.MListFragment"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    tools:layout="@android:layout/mcontent" />

    <FrameLayout ... />
</LinearLayout>

エラーは次のコードで発生します。

public class MainMenuFragment extends Fragment implements
        MenuListFragment.Callbacks {

    // ...

    @Override
    public View onCreateView( LayoutInflater inflater, ViewGroup container, 
        Bundle savedInstanceState) 
    {
        super.onCreateView(inflater, container, savedInstanceState);

        LinearLayout ll = (LinearLayout) inflater.inflate(
                R.layout.activity_main_menu, container, false);

        return ll;
    }

    // ...

}

エラーはフラグメントにあります。古いアクティビティが彼の中に 2 つのフラグメントをロードしたことが原因だと思います。

どうすれば解決できますか?

更新: 完全なフラグメント xml データを追加しました

4

2 に答える 2

1

Fragment にthis oneのようなコードが含まれていると思われ、Activity にコールバック インターフェイスを実装する必要があり、Activity はそのインターフェイスを実装していません。

于 2013-04-10T18:33:43.057 に答える
0

タグには、名前と IDのfragment両方が必要です。

于 2013-04-10T17:40:25.667 に答える