我想从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);
以上述方式我只得到最后一个值,欢迎任何人告诉它。
答案 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()
个列表,只有最后一个列表可以访问(对于其他人,您不再有参考)。