【问题标题】:Is it possible to sort data in a textview?是否可以在文本视图中对数据进行排序?
【发布时间】:2015-09-19 00:26:26
【问题描述】:

我正在使用“Codeofaninja”。 android table scroll code

他生成数据。我用一个 sqlite 数据库替换了它。它运作良好,但... 我需要排序,显示的是带有表格的文本视图。 我应该使用 listviews 而不是 textviews/tablerows 吗? 我已经看到在集合中对数据进行排序的示例。我已经在列表中有我的数据,但我读过 textviews 有性能问题。 如果答案是列表视图,那么我必须重新设计我试图不做的视图。但如果技术说我必须如此,那就这样吧。 所以我想出了2个选择: 1:文本视图在任何数据操作后重新填充列表。 2:listview 是处理数据然后存储回数据库的地方。那我需要在relativelayout视图中放一个listview吗?

我已尝试从 textview 中删除表格行并重新读取数据,但这证明很慢。

我搜索了 textviews 和 listviews 并看到了很多示例,但仍然不清楚哪种方法是首选。 感谢您的意见。

【问题讨论】:

    标签: android performance android-layout android-listview textview


    【解决方案1】:

    这个想法是排序独立于视图。您首先对集合(列表、数组等)中的数据进行排序,然后使用 ListAdapter(或 ArrayAdapter、.etc)来填充视图。

    根据您的描述,似乎每次都会重新创建文本视图,即,如果您有 10 行,每行有 3 个文本视图,您是否创建了 30 个文本视图?在这种情况下,肯定它有性能问题。尝试阅读 ViewHolder for ListView Android Viewholder implementation

    【讨论】:

    • 我生成了 100 个数据库记录,这相当于 300 个文本视图。当我第一次开始这个设计时,我没有掌握 listview 与 textview 的过程。您在此处的回答确认 listview 是标准或应该是标准。所以这是一个很好的坚实方向。我总是假设我可以加载和抛出任何我认为合适的数据。
    • 我将此标记为答案,因为我注意到了性能问题。这个答案阻止了我进一步尝试围绕 textview 使用编写更多代码。
    • 我让用户可以选择按标题标签来按 asc 或 desc 排序。然后整个视图显示新结果。因此,根据您在此处所说的,标签印刷机然后对数组进行排序并重新显示数组。通过使用上一个答案的设置,列表视图将根据更改事件触发器自动显示。
    • 可以,只需要调用适配器的notifyDataChanged函数即可。其余的都是自动的
    【解决方案2】:

    使用一次加载一些数据的想法更好。 Android ListViewRecyclerView 都会在需要时虚拟加载数据,并在不再需要时删除数据。 关于 ListView @Populating a ListView With Data 的一篇很好的教程。告诉我们你的想法。

    这些 GUI 类的唯一缺点是当您的帖子中只有少量数据要显示时,这不太可能。

    【讨论】:

    • 相同的评论适用于这里的两个答案。 [ 我生成了 100 条数据库记录,相当于 300 个文本视图。当我第一次开始这个设计时,我没有掌握 listview 与 textview 的过程。您在此处的回答确认 listview 是标准或应该是标准。所以这是一个很好的坚实方向。我总是假设我可以加载和抛出任何我认为合适的数据。]
    • 我卡住的原因是布局是动态构建的。我试图保持这种设计,因为我有另一个表生成的列数。
    • 我喜欢这个答案。这个答案确实是次要的,这意味着我必须在实现排序数组后使用它。
    • @PaulMoore,不要担心数组排序。您可以选择像 Collections.sort() 进行排序或使用使用 SQL 进行排序的 CursorLoader 类。
    • @PaulMoore,对于布局问题和排序,请为他们发布另一个问题。顺便说一句,构建可变列的动态布局更加困难。我建议现在做一个少列的布局,实际上它们是 ListView UI 中的几个 UI 元素。
    猜你喜欢
    • 2019-09-11
    • 2023-03-07
    • 2015-09-18
    • 1970-01-01
    • 2012-03-21
    • 1970-01-01
    • 1970-01-01
    • 2015-07-03
    相关资源
    最近更新 更多