在Android中以单父布局显示两个表的ListView?

发布于 2024-12-07 14:23:09 字数 416 浏览 1 评论 0原文

有很多关于创建 ListView 以显示单个表中的内容的教程。 (以这个为例: http://thinkandroid.wordpress.com /2010/01/09/simplecursoradapters-and-listviews/

我的问题是我想在单个 LinearLayout 父级中显示两个 ListView。 ListViews 将从同一数据库中的两个不同表中绘制。有人会向我指出一个教程,告诉我如何做到这一点(希望以一种干净、干燥的方式)吗?

我可以使用多个 SimpleCursorAdapter 吗?布局怎么样?它如何知道将物品放置在哪里?

There are a lot of tutorials for creating a ListView to display contents from a single table. (Take this one for example: http://thinkandroid.wordpress.com/2010/01/09/simplecursoradapters-and-listviews/)

My problem is that I'd like to display two ListViews in a single LinearLayout parent. The ListViews will draw from two different tables in the same database. Will anyone point me to a tutorial that tells me how to do that (in, hopefully, a clean, DRY way)?

Can I use multiple SimpleCursorAdapters? What about the layouts? How will it know where to place the items?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

中二柚 2024-12-14 14:23:09

无需使用单独的 ListViews/CursorAdapters,只需执行 JOIN 在您的表上查找您想要的数据,您将得到一个游标。那么你只需要处理一个ListView和一个适配器。

There's no need to use separate ListViews/CursorAdapters, just do a JOIN on your tables for the data you want, and you'll get a single Cursor back. Then you only have to deal with one ListView and one adapter.

满身野味 2024-12-14 14:23:09

您可以创建这样的布局(垂直LinearLayout中的两个相同大小的列表):

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <ListView
        android:id="@+id/list1"
        android:layout_weight="1"
        android:layout_height="0dip"
        android:layout_width="fill_parent"></ListView>
    <ListView
        android:id="@+id/list2"
        android:layout_weight="1"
        android:layout_height="0dip"
        android:layout_width="fill_parent"></ListView>
</LinearLayout>

然后您只需在活动中使用它们:

public void onCreate(Bundle bundle) {
    super.onCreate(bundle);
    setContentView(R.layout.your_layout);

    ListView list1 = (ListView) findViewById(R.id.list1);
    list1.setAdapter(...);

    ListView list2 = (ListView) findViewById(R.id.list2);
    list2.setAdapter(...);
}

也许您可以在这两个列表之间插入一条彩色线,这样用户就不会'不要将该列表混淆为单个列表。

You can create a layout like this (two equal sized lists in a vertical LinearLayout):

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <ListView
        android:id="@+id/list1"
        android:layout_weight="1"
        android:layout_height="0dip"
        android:layout_width="fill_parent"></ListView>
    <ListView
        android:id="@+id/list2"
        android:layout_weight="1"
        android:layout_height="0dip"
        android:layout_width="fill_parent"></ListView>
</LinearLayout>

Then you just use them in your activity:

public void onCreate(Bundle bundle) {
    super.onCreate(bundle);
    setContentView(R.layout.your_layout);

    ListView list1 = (ListView) findViewById(R.id.list1);
    list1.setAdapter(...);

    ListView list2 = (ListView) findViewById(R.id.list2);
    list2.setAdapter(...);
}

Maybe you could insert a colored line between those two list so the user doesn't confuse the list as a single one.

别想她 2024-12-14 14:23:09

您可以创建一个适配器,它将查询两个源并组合数据,然后使用单个列表视图显示它。

You can create a single adapter which will query both the sources and combine the data and then display it using a single listview.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文