在上一篇博客中介绍了在ListView中使用 ArrayAdapter,使用ArrayAdapter存在一个弊端,只能处理一种数据,在上一篇博客中,只能处理好友的姓名,不能处理好友的图片,为了既可以处理好友的姓名又可以处理好友的图片,ListView中提供了一个SimpleAdapter,使用SimpleAdapter既可以处理好友的姓名,也可以处理好友的图片,实现的效果如下
![](https://img-blog.csdn.net/20160413160142735)
首先使用Android Studio创建一个Android工程
1、在drawable文件夹添加十张图片,作为人物的头像
![](https://img-blog.csdn.net/20160413161009375)
修改activity_main.xml文件
3、新建一个item_listview.xml文件作为ListView中的条目所在的布局文件
4、新建一个Person类,用于处理好友的信息
package example.administrator.arrayadaptedemo;public class Person {private String name;private int imageId;public Person(String name, int imageId) {this.name = name;this.imageId = imageId;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getImageId() {return imageId;}public void setImageId(int imageId) {this.imageId = imageId;}
}
最后修改MainActivity.java文件
package example.administrator.arrayadaptedemo;import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//创建集合List personList = new ArrayList();//创建person对象Person person1 = new Person("刘得意", R.drawable.man1);Person person2 = new Person("王锐", R.drawable.man2);Person person3 = new Person("何煜中", R.drawable.man3);Person person4 = new Person("王磊", R.drawable.man4);Person person5 = new Person("冯松", R.drawable.man5);Person person6 = new Person("裴培", R.drawable.man6);Person person7 = new Person("马骁", R.drawable.man7);Person person8 = new Person("马婧", R.drawable.man8);Person person9 = new Person("周俊升", R.drawable.man9);Person person10 = new Person("贺祺", R.drawable.man10);//将Person对象添加到集合中personList.add(person1);personList.add(person2);personList.add(person3);personList.add(person4);personList.add(person5);personList.add(person6);personList.add(person7);personList.add(person8);personList.add(person9);personList.add(person10);//获得布局文件上的ListView控件ListView lv = (ListView) findViewById(R.id.lv);//集合中每个元素都包含ListView条目需要的所有数据// 该案例中每个条目需要一个字符串和一个整型,所以使用一个map来封装这两种数据List