在ListFragment中使用了自定义的ListView,引起了此问题。后来经过排除过滤问题,找到出错的原因是,自定义的ListView中xml使用的android:id引起的问题。
12-31 13:49:09.825: E/AndroidRuntime(19669): Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is ‘android.R.id.list’
12-31 13:49:09.825: E/AndroidRuntime(19669): at android.support.v4.app.ListFragment.ensureList(ListFragment.java:344)
12-31 13:49:09.825: E/AndroidRuntime(19669): at android.support.v4.app.ListFragment.onViewCreated(ListFragment.java:145)
12-31 13:49:09.825: E/AndroidRuntime(19669): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:941)
12-31 13:49:09.825: E/AndroidRuntime(19669): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
12-31 13:49:09.825: E/AndroidRuntime(19669): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
12-31 13:49:09.825: E/AndroidRuntime(19669): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
12-31 13:49:09.825: E/AndroidRuntime(19669): at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:570)
12-31 13:49:09.825: E/AndroidRuntime(19669): at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1171)
12-31 13:49:09.825: E/AndroidRuntime(19669): at android.app.Activity.performStart(Activity.java:5329)
12-31 13:49:09.825: E/AndroidRuntime(19669): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2191)
12-31 13:49:09.825: E/AndroidRuntime(19669): … 11 more
<ListView
android:id="@+id/lv"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_margin="3dp"
android:background="@color/whilte"
android:dividerHeight="0.5dp"
android:padding="3dp"
android:scrollbars="none"
/>
其中android:id=”@+id/lv”,不能如此使用。查看了官方中ListActivity中,ListView的android:id=”@android:id/list”均以此定义,所以做了修改,即可使用了。
修改后
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_margin="3dp"
android:background="@color/whilte"
android:dividerHeight="0.5dp"
android:padding="3dp"
android:scrollbars="none"
/>
另:在代码中引用时同样的需要改成 findViewById(android.R.id.list)