【问题标题】:How to show a list of items with 2 fields?如何显示具有 2 个字段的项目列表?
【发布时间】:2014-10-03 17:18:08
【问题描述】:

我正在开发我的第一个应用程序,我想显示一个网格,其中有一个条目列表。我通过对本地 SQLite 数据库的查询获取这些条目,因此这是一个动态列表。这个列表的每一项都应该有 2 个字段:一个字符串和一个值。

如何在活动中正确地做到这一点? 我看到了 ListView,但它似乎不适合我的需要,而且我不需要可点击的项目。

您能提出更好的解决方案吗?

【问题讨论】:

  • 我会使用 ListView。它们不必是可点击的,您可以将视图自定义为具有 2 列(或任何您想要的列),并且它们在滚动期间具有视图回收等方面的巨大性能优势。
  • 你能展示一个有 2 列的 ListView 的例子吗?
  • technotalkative.com/android-multi-column-listview 例如。它只是作为行返回的自定义视图。
  • 太棒了!看来我在找什么!谢谢。
  • 我已将其添加为完整性的答案。一旦你掌握了自定义 ListView 的窍门,你就会一直使用它:)

标签: android list items


【解决方案1】:

我仍然会使用ListView

它们不必是可点击的,您可以将视图自定义为具有 2 列(或任何您想要的),并且它们在滚动期间通过视图回收等具有巨大的性能优势。

本质上,您需要将自定义视图作为行返回 - 此行视图将具有水平对齐的数据,因此您可以获得列。

Here 就是一个例子。

【讨论】:

  • 我遇到了一个问题:我的 MultiColumnActivity 类不是一个 Activity,它是一个 Fragment。因此,如果我写“公共类 StatTab1 扩展片段”而不是“扩展活动”,我会在 setContentView、ListView 和 ListViewAdapter 上遇到错误...
  • 我认为这超出了这个问题的范围。显然,您需要修改您发现的任何代码以适用于您的片段设置。例如,在片段中,您不使用setContentView,而是在onCreateView 中设置所有内容 - 但是如果没有看到您的任何代码,我无法回答。
【解决方案2】:

以编程方式或在垂直方向的 XML LinearLayout 中创建:

LinearLayout layout = findViewById(r.id.layout);
layout.setOrientation(LinearLayout.VERTICAL);

然后为每个项目创建Textview,其文本由字符串和项目值组成,并将它们添加到布局中:

for (int i=0; i<items.size; i++) {
    TextView tv = new TextView(context);
    tv.setText(items[i].stringName + ": " + items[i].value);
    layout.addView(tv);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-09
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 2015-09-16
    相关资源
    最近更新 更多