【发布时间】:2019-10-16 20:17:51
【问题描述】:
我正在尝试使用我的 JSON 文件中的数据填充我的 Listview。但由于某种原因,它只将同一行输出到列表视图中的 35 倍。有人知道为什么吗?
JSONArray json = new JSONArray(data);
ArrayList<HashMap<String, String>> arrayList = new ArrayList<HashMap<String, String>>();
HashMap<String, String> map = new HashMap<String, String>();
try {
for(int i=0;i<json.length();i++){
JSONObject e =json.getJSONObject(i);
map.put("id", String.valueOf(i));
map.put("Name", "Vorname: " + e.getString("meta_value"));
map.put("orderid", "id: " + e.getString("post_id"));
arrayList.add(map);
}
final ArrayAdapter arrayAdapter = new ArrayAdapter(activity2.this, android.R.layout.simple_list_item_1,arrayList);
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
ListView myListView = (ListView) findViewById(R.id.list);
myListView.setAdapter(arrayAdapter);
}
});
【问题讨论】:
-
每次将地图添加到循环中的列表时,都会添加相同的地图。如果您希望每次迭代都使用不同的地图,则需要在循环内创建地图。
标签: java android arrays hashmap