如何使用@android:id / list在同一布局中引用两个listviews?

时间:2014-10-21 09:08:10

标签: android android-layout android-listview android-xml android-listfragment

我正在尝试在同一布局中的两个列表视图上设置两个不同的适配器。在互联网上进行了几次搜索后,这个错误"必须有一个列表视图,其中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。

3 个答案:

答案 0 :(得分:2)

  

我想知道的是如何引用使用@android的两个不同的列表视图:id / list?

简单的答案是不可能(假设两个ListViews处于相同的布局中)。

标识@android:id/list只是在使用ListViewListActivity时为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引用列表