列表视图中的复杂项目

JB_*_*ser 4 android

我有一个ListView,其中每个项目的视图是一个字符串(项目的名称).但是我必须将很多其他数据与该项相关联:价格,大小,重量,税等.所以,我要创建一个名为Item的新Java类,然后创建列表中每个项的对象.

我不知道实现这个的bext方法是什么.有两个明显的选择:

1)我可以简单地在任何Android视图之外创建数据结构,然后编写一个名为UpdateList()的方法,该方法获取此数据结构中每个项目的名称并将其放入ListView中.这个问题是一些数据被复制两次(原始数据结构和ListView的适配器),当你复制数据时,就会出现bug漏洞.

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

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

Emi*_*Adz 9

使用ListView和Adapter选项会更好.您需要创建一个自定义,ArrayAdapter以便ListView按照您希望的方式填充此对象.

这种技术的优点是你获得了一个视图回收机制,它将回收Views你的内部ListView,以减少内存.

简而言之,你必须:

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

2.创建ArrayList这些对象.

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

4.创建单行的布局.

5.创建一个ViewHolder代表您数据行的视觉方面的视角Views.

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

7.最后将此分配ArrayAdapter给你ListViewonCreate.

你可以通过阅读我写的这篇博文来了解如何实现这一点:

创建自定义ArrayAdapter