片段内的片段错误

时间:2013-04-10 17:09:51

标签: android android-fragments

我正在将一个Activity更改为Fragment以在Scrollable Tab Activity中使用。但我得到这个例外我加载这个片段:

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

    // ...

}

错误发生在片段上,我认为这是因为旧活动在他内部加载了两个片段。

我该如何解决?

更新:添加了完整的fragmen xml数据

2 个答案:

答案 0 :(得分:1)

我怀疑你的Fragment包含一些像this one这样的代码,要求你的Activity实现一个回调接口,而你的Activity没有实现那个接口。

答案 1 :(得分:0)

fragment标记必须同时包含名称和ID。