0

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

1 回答 1

3

当您遍历 JSONitem元素数组时,您将在相同的title,catdate每次迭代中设置对象的字段。这就是为什么只有最后一项是“显示”的原因。

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

于 2012-12-02T10:41:26.857 回答