Android 开发之ListView中SimpleAdapter

MeOrdinary 2014-05-13

今天做项目,用到了listview这个空间,看到SimpleAdapter类的构造函数,一直有一些疑惑,例如如下代码

//第一个参数Content:上下文  
        //第二个参数List<? extends Map<String, ?>>:ArrayList对象,ArrayList里面存放的是HashMap,而HashMap的键值对都是String类型  
        //第三个参数int resource:内容显示的布局文件  
        //第四个参数String[] from:被添加到ArrayList中的HashMap中key的名称,要显示的列  
        //第五个参数int[] to:内容显示的布局文件中,显示内容的控件id  
        SimpleAdapter listAdapter = new SimpleAdapter(this, list,  
                R.layout.car, 
                new String[] { "user_name", "user_ip" },  
                new int[] { R.id.number, R.id.name }
        		);

       参数1和参数2就不说,一下就能理解。

       关键是后面三个参数,尤其是第三个以及第五个参数,一开始以为参数3应该是存放了listview的 .xml ,然后就奇怪,参数5的两个控件都不存在啊???

       后来才发现,我的理解错误了,SimpleAdapter这个适配器,每一条记录都要显示一次该布局文件!!!也就是说参数3的布局文件,要在我们的listview中显示好多次!!!而这个参数3的布局文件,定义了每次显示数据时的格式。

    难怪人家说SimpleAdapter这个控件通用性很强,而参数5则是参数3的布局文件中要显示的控件。。。

顺便附上一个看到的帖子,以后借鉴一下:

http://www.cnblogs.com/loulijun/archive/2011/12/27/2303488.html

相关推荐