访问arraylist中的Hashmap值

时间:2014-10-01 13:34:37

标签: java android arraylist hashmap

当我创建这个对象时,我喜欢这样:

random_fields= new ArrayList<HashMap<String, String>>();

try {
    // Getting Array of fields
    JSONArray fields= json.getJSONArray("fields");

    // Looping through All fields
    for(int i = 0; i < fields.length(); i++) {
        JSONObject jobj = fields.getJSONObject(i);

        // Creating new HashMap
        HashMap<String, String> map_aux = new HashMap<String, String>();

        // Adding each child node to HashMap key => value
        map_aux.put("field_id", jobj.getString("field_id"));

        map_aux.put("field_text", jobj.getString("field_text"));
    }    
    // Adding HashList to ArrayList
    random_fields.add(map_aux);
}

然后当我尝试访问Hashmaps的Arraylist中的每一个字段时...我喜欢这样:

例如:

editText1.setText(random_fields.get(0).get("field_text"));

它给了我一个Java空指针错误...但如果我这样做:

System.out.println(random_challenges.get(0).get("field_text"));

它工作正常,它在我的调试控制台中打印..字段文本正确..哪个可以解决?

2 个答案:

答案 0 :(得分:0)

您设置editText的代码看起来正确。我在这里可以看到的唯一区别是你在System.out.println方法中使用random_challenges,在setText方法中使用random_fields。

答案 1 :(得分:0)

你想提供一些实际的代码文件(不仅仅是片段),我可以仔细观察,但是根据你提供的内容,我会冒昧地猜测发生了什么,你认为你填充哈希值的值map(在for循环中)超出范围并被清理,留下NULL引用。

你控制台,因为它持续存在,保持数据实例化足够长的时间让你调试打印它。