如何在android中解析List <map>?

时间:2016-02-28 05:52:48

标签: java android

我试图在JAVA中存储associative array之类的数据。所以我带了地图列表

List<Map> processNeedImages = null; 
int flag =0;
if(c.moveToFirst()){
    do{
         Map<String, String> map = null;
         map.put("status", c.getString(c.getColumnIndex("system_url")));
         processNeedImages.add(flag++, map);
      }while(c.moveToNext());

我无法解析此数据

List<Map> allImages = getData();
for (Map map:allImages){
    Log.d("listImage", String.valueOf(map.get("status")));
}

偶数循环甚至迭代一次。

2 个答案:

答案 0 :(得分:1)

Map<String, String> map = null

应替换为

Map<String, String> map = new HashMap<>(); 

您没有创建新的地图对象。而是每次都添加相同的地图对象。虽然您要为每个光标位置向地图添加新值,但该对象只有一个。因此你的循环只有一次。

答案 1 :(得分:1)

初始化代码中的所有变量,如下所示

List<Map> processNeedImages = new ArrayList<>(); 
int flag =0;
if(c.moveToFirst()){
    do{
         Map<String, String> map = new HashMap<>();
         map.put("status", c.getString(c.getColumnIndex("system_url")));
         processNeedImages.add(flag++, map);
      }while(c.moveToNext());
}

这样可以正常工作。

你应该阅读这个答案NullPointerException