2012-12-02 76 views
0

我有一個問題:我的JSON解析器只顯示最後一個項目!但在Logcat我看到所有的項目! 你能幫我嗎?安卓Json只顯示最後一項

@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

你是如何顯示項目?您似乎每次都在循環中設置相同的文字瀏覽,因此您只能看到最後一個。 – Simon

回答

3

當你通過item元件的JSON陣列迭代,那麼你就在每次迭代相同titlecatdate對象設置的字段。這就是爲什麼只有最後一項是'顯示'。

您需要爲每個JSONObject(i)創建一個新對象並將其存儲在某處。