这面是一listview和map运用,先贴代码,
public class MyListView3 extends ListActivity {         
// private List<String> data = new ArrayList<String>();     
@Override    
public void onCreate(Bundle savedInstanceState) {         
super.onCreate(savedInstanceState);           
SimpleAdapter adapter = new SimpleAdapter(this,getData(),R.layout.vlist,                 
new String[]{"title","info","img"},                
new int[]{R.id.title,R.id.info,R.id.img});         
setListAdapter(adapter);     
}       
private List<Map<String, Object>> getData() {         
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();           
Map<String, Object> map = new HashMap<String, Object>();         
map.put("title", "G1");        
map.put("info", "google 1");         
map.put("img", R.drawable.i1);         
list.add(map);           
map = new HashMap<String, Object>();         
map.put("title", "G2");         
map.put("info", "google 2");         
map.put("img", R.drawable.i2);         
list.add(map);           
map = new HashMap<String, Object>();         
map.put("title", "G3");         
map.put("info", "google 3");         
map.put("img", R.drawable.i3);         
list.add(map);                   
return list;     

} 上面的代码中,3个map值是写死的,
现问:1 如何用循环的思路给map赋值

解决方案 »

  1.   

    给楼主一个更好一点的思路:
    不要用List对象存放Map集合,遍历起来麻烦,阅读起来也痛苦
    楼主想要的是一种像Map一样的对应关系,那么可以用一个单独的数据类(bean)来实现,
    如上的Map<String, Object>,可以写成一个Data类:
    public class Data{
      //唯一
      private String key;
      private Object obj;
      //下边是getter,setter方法,省略
      ...
    }
    这样就用List<Data>这样的形式
      

  2.   

    多谢楼上的,
    回楼上的,
    上面的代码中,3个map值是写死的,
    现问:1 如何用循环的思路给map赋值呢,
      

  3.   


    private List<Map<String, Object>> getData() {
    List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
    Map<String, Object> map = new HashMap<String, Object>();
    for (int i = 0; i < 3; i++) {
    map.put(keys[0], datas[i].getTitle());
    map.put(keys[1], datas[i].getInfo());
    map.put(keys[2], datas[i].getId());
    list.add(map);
    }
    return list;
    } class Data {
    private String title;
    private String info;
    private int id;
            public Data(String title,String info,int id){
             this.title = title;
             this.info = info;
             this.id = id;
            }
    public String getTitle() {
    return title;
    } public String getInfo() {
    return info;
    } public int getId() {
    return id;
    }
    }
    private String[] keys = new String[]{"title","info","img"};
    private Data[] datas = new Data[]{new Data("G1","google 1",R.drawable.i1) ,
    new Data("G2","google 2",R.drawable.i2),
    new Data("G3","google 3",R.drawable.i3)};