android Json只显示最后一项

时间:2012-12-02 10:20:33

标签: android android-asynctask

我有一个问题:我的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();
    }

1 个答案:

答案 0 :(得分:3)

当您遍历item元素的JSON数组时,您将在每次迭代时在相同的titlecatdate对象上设置字段。这就是为什么只有最后一项是'显示'。

您需要为每个JSONObject(i)创建一个新对象并将其存储在某个位置。