在上一篇中,我们已经对listview的初步使用以及对适配器有一定的了解,接下来,我们更近一步,去给listview加载更加多的东西,比如可以一个照片(imageview)再加一个字符串(String)
接这上一篇的工程,笔者就不重新去创建一个了,这次使用的是android给的适配器,simpleadapter,虽然是simple,但是其功能一点都不简单。
老规矩,我们对simpleadapter进行声明,并且对创建我们需要的泛型List<Map<String,Object>>,Object类概括了很多基本类型,所以可以用Object类来做泛型的数据类型。
接下来就是源码:
public class MainActivity extends ActionBarActivity {
private ListView ListView;
private int[] res;
private SimpleAdapter simpleAdapter;
private List<Map<String, Object>> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//对listview进行声明
ListView = (ListView) findViewById(R.id.listview);
res = new int[]{R.drawable.img1,R.drawable.img2,R.drawable.img3,R.drawable.img4,R.drawable.img5};
list = new ArrayList<Map<String,Object>>();
这里是一部分代码,我们在其中,给照片进行了数组的加载,并且对泛型list进行了声明还有对listview也进行了声明,然后就是simpleadapter的声明了。
simpleAdapter = new SimpleAdapter(MainActivity.this, getData(), R.layout.items, new String[]{"image","contents"}, new int[]{R.id.imageView1,R.id.textView1});
然后就是对数据源方法的创建:
private List<Map<String, Object>> getData() {
// TODO Auto-generated method stub
for(int i=0;i<5;i++){
Map<String, Object> map = new HashMap<String, Object>();
map.put("image", res[i]);
map.put("contents", "这是第" + i + "个图标");
list.add(map);
}
return list;
}
最后就是listview加载适配器,最后的成果图如下: