Android 碎片列表中的ListAddapter

Android 碎片列表中的ListAddapter,android,eclipse,android-listfragment,Android,Eclipse,Android Listfragment,为什么会出现这些错误 04-10 17:07:57.880: E/AndroidRuntime(917): Process: com.example.programming_fragments, PID: 917 04-10 17:07:57.880: E/AndroidRuntime(917): java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.li

为什么会出现这些错误

04-10 17:07:57.880: E/AndroidRuntime(917): Process: com.example.programming_fragments, PID: 917
04-10 17:07:57.880: E/AndroidRuntime(917): java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
04-10 17:07:57.880: E/AndroidRuntime(917):  at android.support.v4.app.ListFragment.ensureList(ListFragment.java:344)
04-10 17:07:57.880: E/AndroidRuntime(917):  at android.support.v4.app.ListFragment.onViewCreated(ListFragment.java:145)
04-10 17:07:57.880: E/AndroidRuntime(917):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:925)
04-10 17:07:57.880: E/AndroidRuntime(917):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
04-10 17:07:57.880: E/AndroidRuntime(917):  at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
04-10 17:07:57.880: E/AndroidRuntime(917):  at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444)
04-10 17:07:57.880: E/AndroidRuntime(917):  at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:429)
04-10 17:07:57.880: E/AndroidRuntime(917):  at android.os.Handler.handleCallback(Handler.java:733)
04-10 17:07:57.880: E/AndroidRuntime(917):  at android.os.Handler.dispatchMessage(Handler.java:95)
04-10 17:07:57.880: E/AndroidRuntime(917):  at android.os.Looper.loop(Looper.java:136)
04-10 17:07:57.880: E/AndroidRuntime(917):  at android.app.ActivityThread.main(ActivityThread.java:5017)
04-10 17:07:57.880: E/AndroidRuntime(917):  at java.lang.reflect.Method.invokeNative(Native Method)
04-10 17:07:57.880: E/AndroidRuntime(917):  at java.lang.reflect.Method.invoke(Method.java:515)
04-10 17:07:57.880: E/AndroidRuntime(917):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
04-10 17:07:57.880: E/AndroidRuntime(917):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
04-10 17:07:57.880: E/AndroidRuntime(917):  at dalvik.system.NativeStart.main(Native Method)
代码:


您的内容必须具有id属性为android.R.id.list的ListView。因此,转到包含listview的xml并添加id,使其看起来像:

<ListView android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/>


当然,您可以有一个自定义列表,但我假设您正在根据您的问题使用一个简单的列表适配器,所以这应该适合您。

问题在于您在创建视图中设置的布局

如果在自定义的ListFragment中覆盖onCreateView,则需要使用idandroid:id=“@android:id/list”对包含ListView的布局进行充气

如果确实希望使用与ListFragment中使用的默认布局不同的布局,则仅重写onCreateView(),否则使用默认布局

这就是ListFragment中的代码,。您可以查看默认布局(R.layout.list\u content)并查看是否确实需要覆盖此布局

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    return inflater.inflate(com.android.internal.R.layout.list_content,
            container, false);
}

你能附上你的代码和xml文件吗?’我确实执行了你说的:’(我能把我的项目寄给你吗?’我不能
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    return inflater.inflate(com.android.internal.R.layout.list_content,
            container, false);
}