无法从android中的arraylist获取所有值

时间:2013-03-03 19:51:06

标签: android arraylist

我想从arraylist中逐个获取值并将其设置为TextView,但我不能。 我的代码是:

try {
        // Getting Array of Contents
        jsonArrar = json.getJSONArray(TAG_CONTENTS);

        // looping through All Contents
        for(int i = 0; i < jsonArrar.length(); i++){
            JSONObject c = jsonArrar.getJSONObject(i);
            list = new ArrayList<String>();

            String id1=jsonArrar.getJSONObject(i).getString(TAG_ID);                

            list.add(id1);
        }

        Iterator<String> iterator = list.iterator();
        builder = new StringBuilder();
        while (iterator.hasNext()) {
            String string = iterator.next();                
            builder.append(string+"\n");

        }

        textView.setText(builder);

以上述方式我只得到最后一个值,欢迎任何人告诉它。

1 个答案:

答案 0 :(得分:1)

您必须在循环之前声明列表,并且在for循环中只添加元素:

list = new ArrayList<String>();    
for(int i = 0; i < jsonArrar.length(); i++){
        JSONObject c = jsonArrar.getJSONObject(i);


        String id1=jsonArrar.getJSONObject(i).getString(TAG_ID);                

        list.add(id1);
}

使用您的方法,为jsonArrar中的每个元素声明一个新列表,这样您最终会得到jsonArrar.length()个列表,只有最后一个列表可以访问(对于其他人,您不再有参考)。