首页 理论教育 使用ListAdapter、HashMap和ArrayList优化列表显示

使用ListAdapter、HashMap和ArrayList优化列表显示

时间:2023-06-15 理论教育 版权反馈
【摘要】:在对ListView进行更为复杂的操作时,常常使用ListAdapter+HashMap+ArrayList组装其数据源,具体如何实现呢?一般是将数据保存在HashMap中,将HashMap添加到ArrayList数组对象中,将ArrayList对象作为ListAdapter数据适配器的参数传入,最后绑定到ListView控件上。ListAdapter是绑定Data和Listview的适配器。在3.2.1章节数据适配器曾阐述过,它是接口,需要使用它的子类配合HashMap、ArrayList一起使用。下面通过一个示例,讲述ListAdapter+HashMap+ArrayList的用法,示例代码运行结果如图6-4所示。代码清单6-7 ListAdapter+HashMap+ArrayList使用示例MainActivity.java

使用ListAdapter、HashMap和ArrayList优化列表显示

在对ListView进行更为复杂的操作时,常常使用ListAdapter+HashMap+ArrayList组装其数据源,具体如何实现呢?一般是将数据保存在HashMap中,将HashMap添加到ArrayList数组对象中,将ArrayList对象作为ListAdapter数据适配器的参数传入,最后绑定到ListView控件上。

ListAdapter是绑定Data和Listview的适配器。在3.2.1章节数据适配器(Adapter)曾阐述过,它是接口,需要使用它的子类(ArrayAdapter,SimpleAdapter,CursorAdapter)配合HashMap、ArrayList一起使用。

HashMap类实现了Map接口,它主要功能提供一种键(key)值(value)保存数据的方式。在数组中通过数组下标来对其内容进行索引,而在Map中是通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value。它的映射关系就像表中的字段与表中的值一样,可以把表的查询结果完全转换成HashMap散列表。

ArrayList对象是包含单一数据值的项目的集合,通过Add()方法向ArrayList添加项目。它的默认初始容量为0,但随着元素添加到ArrayList中,容量会根据需要通过重新分配自动增加。

下面通过一个示例,讲述ListAdapter+HashMap+ArrayList的用法,示例代码运行结果如图6-4所示。

首先,介绍如何通过xml布局实现这一效果,如代码清单6-5、代码清单6-6所示。

978-7-111-37968-3-Chapter06-13.jpg

图6-4 ListAdapter适配器示例代码运行结果

代码清单6-5 ListAdapter+HashMap+ArrayList使用示例(第6章\Demo_06_03)main.xml

978-7-111-37968-3-Chapter06-14.jpg(www.xing528.com)

978-7-111-37968-3-Chapter06-15.jpg

代码清单6-6 ListAdapter+HashMap+ArrayList使用示例(第6章\Demo_06_03)list_items.xml

978-7-111-37968-3-Chapter06-16.jpg

其次,介绍Activity java代码如何配合xml布局实现这一效果,如代码清单6-7所示。

代码清单6-7 ListAdapter+HashMap+ArrayList使用示例(第6章\Demo_06_03)MainActivity.java

978-7-111-37968-3-Chapter06-17.jpg

978-7-111-37968-3-Chapter06-18.jpg

978-7-111-37968-3-Chapter06-19.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈