2014-10-01 80 views
-1

的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); 
} 

,然后当我尝试进入的每一个领域中包含HashMap的ArrayList中......我喜欢这:

例如:

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

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

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

它的工作原理和它打印在我的调试控制台..正确的字段..哪个可以解决方案?

+0

请花更多精力来设置您的帖子格式。你应该已经能够从预览中看到你的代码是*英里*在右边,无故滚动。此外,请使用空格而不是制表符在Stack Overflow上进行缩进。 – 2014-10-01 13:36:24

+0

你用'random_fields'设置文本但打印'random_challenges'? – 2014-10-01 13:38:25

+0

确保你的程序不会抛出异常。如果抛出,可能是'random_fields.get(0).get(“field_text”)= null' – 2014-10-01 13:43:46

回答

0

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

0

你想提供一些实际的代码文件(不只是片段),我可以看得更近,但从你所提供的,我敢冒险猜测发生了什么是你认为你正在填充你的值散列映射(在for循环中)超出范围,并被清除,留下NULL参考。

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