我正在尝试在同一布局中的两个列表视图上设置两个不同的适配器。在互联网上进行了几次搜索后,这个错误"必须有一个列表视图,其中id必须是android.R.id.list",我发现我需要将我的listview id定义为@android:id /名单。
我想知道的是如何引用使用@android的两个不同的列表视图:id / list?
以下代码是否有意义?
ListView lv1 = (ListView) findViewById(android.R.id.list);
ListView lv2 = (ListView) findViewById(android.R.id.list);
ps:我正在使用Fragment并扩展ListFragment。
答案 0 :(得分:2)
我想知道的是如何引用使用@android的两个不同的列表视图:id / list?
简单的答案是不可能(假设两个ListViews
处于相同的布局中)。
标识@android:id/list
只是在使用ListView
或ListActivity
时为ListFragment
定义资源ID的“便捷”方式。
布局中每个小部件的ID必须是唯一的,这意味着您应该为ListViews
定义自己的ID。
答案 1 :(得分:1)
在xml文件中:
<ListView
android:id="@+id/list1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
>
</ListView>
<ListView
android:id="@+id/list2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
>
</ListView>
获取listview的参考:
ListView lv1 = (ListView) findViewById(R.id.list1);
ListView lv2 = (ListView) findViewById(R.id.list2);
请记住: R.id.list1
而不是android.R.id.list1
答案 2 :(得分:0)
在您的xml中使用android:id="@+id/yourId"
定义自定义ID并使用此新ID引用列表