二进制XML文件行#9:错误膨胀类片段

时间:2011-08-23 14:12:42

标签: android android-3.0-honeycomb android-fragments

收到错误inflating fragment error while running calling an Activity which having fragments.

CheckList是包含listview and Description fragments.的活动,其xml代码为:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="horizontal"
        android:layout_width="match_parent" android:layout_height="match_parent">

        <fragment class="com.uday.honeytest.CheckList$listview"
                android:id="@+id/titles" android:layout_weight="1"
                android:layout_width="0px" android:layout_height="match_parent" />

        <fragment class="com.uday.honeytest.CheckList$Description"
        android:id="@+id/details" android:layout_weight="1"
                android:layout_width="0px" android:layout_height="match_parent"
                android:background="?android:attr/detailsElementBackground" />

    </LinearLayout>

CheckList类是:

public class CheckList extends Activity {

    static int position=0;
    static CheckList check;

    public void onCreate(Bundle saved){

        super.onCreate(saved);
        setContentView(R.layout.checklist);


    }

    public static class listview extends ListFragment {

            View mConverView;
            String[] items;



             @Override
                public void onActivityCreated(Bundle savedInstanceState) {
                    super.onActivityCreated(savedInstanceState);
             }

            public View onCreateView(LayoutInflater inflater, ViewGroup container,
                    Bundle savedInstanceState) {
                xxxxxx..
                     return mConverView;
            }
        }

同样我在这下面有描述片段。

但我正在

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.uday.honeytest/com.uday.honeytest.CheckList}: android.view.InflateException: Binary XML file line #9: Error inflating class fragment
setContentView行出现

错误。

和我的描述片段类是:已编辑:

public static class Description extends Fragment {

        View mConverView;
        String details[];

        public static Description getInstance() {
            Description desc=new Description();
            return desc;

        }

         @Override
            public void onActivityCreated(Bundle savedInstanceState) {
                super.onActivityCreated(savedInstanceState);
         }


        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {


            TextView textview=new TextView(getActivity());
            textview.setLayoutParams(new LayoutParams(MarginLayoutParams.WRAP_CONTENT, MarginLayoutParams.WRAP_CONTENT));



            return textview;
        }
    }

这里有什么问题?

由于

3 个答案:

答案 0 :(得分:8)

您的活动CheckList应该扩展FragmentActivity。

答案 1 :(得分:1)

<fragment class="com.uday.honeytest.CheckList$Description"是收到错误的地方。

您确定您是否正确输入了完全限定的类名?

您是否尝试过清理项目/修复项目属性?

我没有在该课程中看到任何名为Description的内容,这可能是问题所在。

希望这有帮助。

答案 2 :(得分:1)

我刚刚删除了onCreateView中的which contains inflating xml代码listview fragment,并转入onActivityCreated方法,并将其工作。

The reason may be:

ListFragment具有由单个列表视图组成的默认布局。但是,如果需要,可以通过从onCreateView(LayoutInflater,ViewGroup,Bundle)返回自己的视图层次结构来自定义片段布局。为此,您的视图层次结构必须包含一个ID为“@android:id / list”的ListView对象(如果它在代码中则列出)

所以我的listview扩展了ListFragment而不是在xml中包含list,直接我们可以在onActivityCreated而不是onCreateView中使用setListAdapter。