0

問題が 1 つあります。私の 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

要素の JSON 配列を反復処理すると、反復ごとに同じおよびオブジェクトitemのフィールドが設定されます。これが、最後のアイテムのみが「表示」されている理由です。titlecatdate

JSONObject(i)それぞれに新しいオブジェクトを作成し、どこかに保存する必要があります。

于 2012-12-02T10:41:26.857 に答える