package com.example.listviewtest;
/*
* 一,实例化listview。凡是是控件的,实例化都是从布局里面实例化。
*
* 二,填充好要显示的数据
* 2.1:首先把数据放到map里面。
* 2.2:再把map放到list数组里面
*
* 三,把数据按照一定的方式来显示,需要新建一个布局文件。
*
* 四,找到适配器,按照适配器的规则把数据和布局文件连接起来。
*
* */
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.os.Bundle;
import android.app.Activity;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class MainActivity extends Activity {
ListView listview ;
List<Map<String, Object>> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listview = (ListView) findViewById(R.id.listView1);
list = new ArrayList<Map<String, Object>>();//实例化list数组
Map<String, Object> map = new HashMap<String, Object>();//实例化map对象
map.put("title", "G1"); //往map里面添加内容
map.put("image", R.drawable.ic_launcher);
list.add(map);//往list数组里面添加内容
Map<String, Object> map1 = new HashMap<String, Object>();//实例化map对象
map1.put("title", "G2"); //往map里面添加内容
map1.put("image", R.drawable.ic_launcher);
list.add(map1);//往list数组里面添加内容
/*一共五个参数
* 1:this:为固定的
* 2:数据提供者,一定是一个list数组
* 3,布局文件,这个布局文件为listview里面每一行显示的布局格式。
* 4,这个是你在map数组里面添加内容时候的key
* 5,这个是第三个参数布局里面的控件,通过适配器,会自动通过第四个参数里面的key,从第二个参数里面的list里面的map对象中获取到对应的value
* 然后把value显示在第三个布局对应第五个控件id的位置*/
SimpleAdapter simpleAdapter = new SimpleAdapter(
this,
list,
R.layout.listtest,
new String[]{"title","image" }, //这个是map的key
new int[]{R.id.title,R.id.imageView1}); //这个是布局文件里面的ID。
listview.setAdapter(simpleAdapter);//直接桥接
}
}
DEMO下载链接:http://download.csdn.net/detail/yisanmao19890928/9527073