【问题标题】:Two ListViews, 1 Activity - and Pull to Refresh?两个 ListViews,1 个活动 - 并拉动刷新?
【发布时间】:2013-04-24 18:52:29
【问题描述】:

我不知道该怎么做。这是我对Activity 的要求:

  1. 标题
  2. ListView 共 10 项
  3. 标题
  4. ListsView 共 10 项

ListViews 来自两个不同的数据源,可能有两种不同的行布局。所以我想我需要创建两个自定义 adapter 类(两个 getView()'s 等)。

这是关键,我希望能够拉动刷新整个列表并同时更新ListViews。如果这太多了,我会用一个刷新按钮来解决(谷歌似乎更喜欢这个按钮);目前我使用com.handmark.pulltorefresh.library.PullToRefreshListView

这可能吗?如果是这样,完成这项工作的最佳步骤是什么?

【问题讨论】:

  • 你的两个列表是否总是包含 10 个项目??
  • 是的,它将被静态设置。数据库调用基本上会说“限制 10”或 15 或 20 等。无论我选择什么。

标签: android listview android-arrayadapter pull-to-refresh


【解决方案1】:

很有可能。 方法可以是一个 ScrollView 和一个 LinearLayout 子项(垂直方向)。 现在两个 ListView 作为线性布局的子视图。 正如您已经说过的,您将需要两个适配器(具有不同的行布局)。每个列表都可以有自己的 Header View。

对于 PulltoRefresh 功能, you can have a look at pulltorefresh library 这允许您将任何视图作为拉动刷新。正如我上面解释的,你需要 ScrollView 作为根视图,所以你需要使用上面库中的 PullToRefreshScrollView

【讨论】:

  • 对非 ListView 项目进行下拉刷新的好主意。我正在使用的那个也是这样做的。非常感谢,您给了我一些想法!最后一个问题:在活动中,我真的不能做getListView()——因为我需要设置两个不同的adapters,如何区分它们?
  • 您需要为布局 xml 中的每个 ListView 提供不同的 id 说“android:id="@+id/listView_1" & "android:id="@+id/listView_2" 并使用 ListView l1 = (ListView) findViewById(R.id.listView_1) 用于查找您的活动。
【解决方案2】:

MergeAdapter 将帮助您将任意数量的标头和适配器合并为一个。所以基本上在你的活动中只需要一个 ListView 并且这个 ListView 应该使用一个带有两个标题和两个自定义适配器的合并适配器。

Merge Adapter

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-11
    • 1970-01-01
    • 2019-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多