在对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所示。
图6-4 ListAdapter适配器示例代码运行结果
代码清单6-5 ListAdapter+HashMap+ArrayList使用示例(第6章\Demo_06_03)main.xml
(www.xing528.com)
代码清单6-6 ListAdapter+HashMap+ArrayList使用示例(第6章\Demo_06_03)list_items.xml
其次,介绍Activity java代码如何配合xml布局实现这一效果,如代码清单6-7所示。
代码清单6-7 ListAdapter+HashMap+ArrayList使用示例(第6章\Demo_06_03)MainActivity.java
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。