gpt4 book ai didi

android - ListView 中的复杂项目

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:54:13 24 4
gpt4 key购买 nike

我有一个 ListView,其中每个项目的 View 都是一个字符串(项目的名称)。但我必须将许多其他数据与该项目相关联:价格、尺寸、重量、税金等。因此,我要创建一个名为 Item 的新 Java 类,然后为列表中的每个项目创建一个对象。

我不知道哪个是最好的实现方式。有两个明显的选择:

1) 我可以简单地在任何 Android View 之外创建数据结构,然后编写一个名为 UpdateList() 的方法,该方法获取此数据结构中每个项目的名称并将其放入 ListView 中。这样做的问题是某些数据被复制了两次(原始数据结构和 ListView 的适配器),当您复制数据时,可能会出现错误。

2) 或者,我可以以某种方式将数据结构直接与 ListView 的适配器相关联,并让它弄清楚如何显示显示的每个 ListView 条目的名称。这里的优点是您只有一个数据结构。但我不知道这在 Android 中是否可行,或者非常复杂。

使用 Android 应用执行此操作的首选方法是什么?

最佳答案

使用 ListView 和 Adapter 选项会更好,您需要创建自定义 ArrayAdapter 以按照您想要的方式从该对象填充 ListView

此技术的优点是您获得了一个 View 回收机制,该机制将回收 ListView 中的 Views 以减少内存消耗。

简而言之您必须:

1. 创建一个代表单行数据的对象。

2. 创建这些对象的 ArrayList

3.创建一个包含 ListView 的布局或使用代码将 ListView 添加到您的主布局。

4.创建单行布局。

5. 创建一个 ViewHolder,它将从 Views 的角度代表数据行的视觉方面。

6. 创建一个自定义 ArrayAdapter,它将根据您的需要填充行。

7. 最后在 onCreate 中将此 ArrayAdapter 分配给您的 ListView

您可以通过阅读我写的这篇博文了解如何实现它:

Create a Custom ArrayAdapter

关于android - ListView 中的复杂项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15932975/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com