这面是一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赋值
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赋值
解决方案 »
- 100分求解:截图中LogCat里面的“remote”是啥意思?
- android模拟器界面很大,怎么缩小?
- android4.0获取汉字拼音失败
- android4.0中menu如何实现button一样获取焦点,失去焦点显示不同图片
- 如何关闭模拟器?以及如何给模拟器发短信?
- 两台手机运行两个APP,一台APP想给另一台APP发送消息
- android 4.0以上socket开发问题
- webview怎么显示.jsp?
- 想问一个安卓程序的做法,本人刚学不久,最后一个要实现的功能不会写,请问一下各位,谢谢
- 编译android 7.1系统用mmm编译后用make snod打包,无法开机问题.
- 求音量按钮响应事件
- android 阅读器(Reader) 看电子书
不要用List对象存放Map集合,遍历起来麻烦,阅读起来也痛苦
楼主想要的是一种像Map一样的对应关系,那么可以用一个单独的数据类(bean)来实现,
如上的Map<String, Object>,可以写成一个Data类:
public class Data{
//唯一
private String key;
private Object obj;
//下边是getter,setter方法,省略
...
}
这样就用List<Data>这样的形式
回楼上的,
上面的代码中,3个map值是写死的,
现问:1 如何用循环的思路给map赋值呢,
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)};