我有一个问题:我的json解析器只显示最后一项!但是在Logcat我看到了所有物品! 你能救我吗?
@Override
protected void onPostExecute(JSONObject result) {
super.onPostExecute(result);
Log.d("Log", result.toString());
JSONObject jsn = result;
try {
JSONArray jarray = jsn.getJSONArray("item");
for (int i = 0; i < jarray.length(); i++){
JSONObject jsno = jarray.getJSONObject(i);
title.setText(Html.fromHtml("<a href=\""+jsno.getString("link")+"\">"+jsno.getString("title")+"</a>"));
cat.setText(jsno.getString("category"));
date.setText(jsno.getString("pubDate"));
desc.getSettings().setJavaScriptEnabled(true);
desc.getSettings().setDefaultTextEncodingName("charset=UTF-8"); desc.loadData(jsno.getString("description"), "text/html; charset=UTF-8", "utf-8");
}
} catch (JSONException e) {
e.printStackTrace();
}
答案 0 :(得分:3)
当您遍历item
元素的JSON数组时,您将在每次迭代时在相同的title
,cat
和date
对象上设置字段。这就是为什么只有最后一项是'显示'。
您需要为每个JSONObject(i)
创建一个新对象并将其存储在某个位置。