Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将数据加载到ListFragment?_Android_Android Fragments_Android Listview_Android Sqlite_Android Listfragment - Fatal编程技术网

Android 如何将数据加载到ListFragment?

Android 如何将数据加载到ListFragment?,android,android-fragments,android-listview,android-sqlite,android-listfragment,Android,Android Fragments,Android Listview,Android Sqlite,Android Listfragment,我试图将一些数据加载到列表片段中,但出现以下错误: 05-07 00:05:30.533 625-625/com.myapp.android E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list' 我该怎么办 以下是我的文件,如果它们有帮助的话: MainAct

我试图将一些数据加载到
列表片段中,但出现以下错误:

05-07 00:05:30.533   625-625/com.myapp.android E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
我该怎么办

以下是我的文件,如果它们有帮助的话:

MainActivity.java

public class MainActivity extends FragmentActivity {

private ViewPager viewPager;
private ViewpagerAdapter viewpagerAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    viewPager = (ViewPager) findViewById(R.id.pager);
    viewpagerAdapter = new ViewpagerAdapter(getSupportFragmentManager());
    viewPager.setAdapter(viewpagerAdapter);

}

}
ListFrag.java

public class ListFrag extends ListFragment {

private DatabaseAdapter databaseAdapter;

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

    View view = inflater.inflate(R.layout.fragment_listagem, container, false);
    return view;

}

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

    databaseAdapter = new DatabaseAdapter(getActivity());
    databaseAdapter.open();

    List<Foo> values = databaseAdapter.getAllFoobar();

    //ArrayAdapter<Foo> adapter = new ArrayAdapter<Foo>(getActivity(), android.R.layout.simple_list_item_1, values);
    //setListAdapter(adapter);

}

}
公共类ListFrag扩展ListFragment{
专用数据库适配器数据库适配器;
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图=充气机。充气(R.layout.fragment\u列表,容器,false);
返回视图;
}
@凌驾
已创建ActivityState上的公共无效(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
databaseAdapter=新的databaseAdapter(getActivity());
databaseAdapter.open();
列表值=databaseAdapter.getAllFoobar();
//ArrayAdapter=新的ArrayAdapter(getActivity(),android.R.layout.simple\u list\u item\u 1,值);
//setListAdapter(适配器);
}
}
和fragment.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.myapp.android.ListFrag">

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

</FrameLayout>

提前谢谢

java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
事故日志清楚地说明了这个问题。您需要更改
ListView
id
ListFragment
希望布局将
ListView
id设置为
@android:id/list

 android:id="@android:id/list"
如果查看
ListFragment
源代码,它将使用
android.R.id.list
id
检查布局中的
ListView
。如果视图为空,它将抛出一个
RuntimeException

      View rawListView = root.findViewById(android.R.id.list);
        if (!(rawListView instanceof ListView)) {
            if (rawListView == null) {
                throw new RuntimeException(
                        "Your content must have a ListView whose id attribute is " +
                        "'android.R.id.list'");
            }
            throw new RuntimeException(
                    "Content has view with id attribute 'android.R.id.list' "
                    + "that is not a ListView class");
        }
使用此布局

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

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