在数据的传递,Java里面,具有<Key,Value>的Hash是非常重要的,可以方便增/删/改/查,如果我们不使用数据库存储,或者将数据存放在内存中,<Key,Value>是最常用的。下面的例子来自于目前网上一个Android教程视频(mars-droid),我们将关注如何将HashMap的数据放入到ListAdapter中。


HashMap数据放入ListAdapter中

在这个例子中<key,value>是用户名字和用户IP。

步骤1:建立Android XML文件

一个Android XML,里面含有一个ListView,建立一个Android XML文件,里面描述每个ListView单元的水平布局的Layout,左边是一个TextView,用于存放user_name,右边一个TextView,用于存放user_ip。即分别对应key和vaule。

步骤2:初始化HashMap中的数据

ArrayList<HashMap<String,String>> listdata = new ArrayList<HashMap<String,String>>();
         HashMap<String,String> map1 = new HashMap<String,String>();
        HashMap<String,String> map2 = new HashMap<String,String>();
         ... ...
         map1.put("user_name","张三");
         map1.put("user_ip","192.168.0.1");
         map2.put("user_name","李四");
         map2.put("user_ip","192.168.0.2");
         ... ... 
        listdata.add(map1);
        listdata.add(map2);
         ... ...  步骤3:设置ListView的适配器
//第2个参数表示数据来源
                 R.layout.list_entry, //对应描述list entry的XML文件
                 new String[]{"user_name","user_ip"},  //分别对应HashMap中的user_name,和user_ip的数据
                 new int[]{R.id.username,R.id.userip}); //表明上面HaspMap中的user_name以及user_ip数据方便和layout中具体的widget,R.id.username以及R.id.userip对应。
 setListAdapter(listAdapter);

这样就可以了,其余的按Android学习笔记(十一):Activity-ListView中最基础的介绍。由于目前硬件水平的发展,包括电池能力的提供,简洁明了的方式,比起那些繁复的处理要好,无须过渡考虑资源问题,我们只需在程序效率和编程艺术中取得平衡。说白了程序好不好,稳定不稳定是软件的头等问题,CPU能力和电源是ODM/OEM厂家头等问题。

ListAdapter:CursorAdapter

一般来讲,我们可以使用ArrayAdapter来适用很多情况,还有其他的Adapter,使用方式类似,但是CursorAdapter有些不一样,通过newView()和bindView(),如果没有创建,使用newView(),然后调用bindView(),如果已经创建,使用bindView()。