Android学习笔记(二十):回归简单的ListView
在之前连续对ListVew作了逐步深入的探讨,对于手持屏幕来讲,其实可以比较简单,如果别人愿意付钱,不在乎将代码再些一次,这是客户端的开发和复杂服务器的开发不同的地方。当然各人有各人的看法。绝大部分情况下,一个list元素可能左右各有一个widget就差不多,回归简约风格,这也是小尺寸屏幕和手指操作的特点。
在数据的传递,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的适配器
SimpleAdapter listAdapter = new SimpleAdapter(this, listdata, //第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()。
相关链接:我的Andriod开发相关文章