2012-07-13 142 views
-1

我的ArrayList<HashMap<String, String>> songslist沒有值。在我的doInBackground方法中,我有for循環應該填充此ArrayList。字符串「ID」,「解釋」......也有它的價值。哪裏有問題?這裏代碼:ArrayList <HashMap <String,String >>沒有值

JSONArray charts = json.getJSONArray(TAG_CHARTS); 

       // looping through All Products 
       for(int i=0;i<charts.length();i++) { 
        JSONObject json_data = charts.getJSONObject(i); 

        String id = json_data.getString(TAG_ID); 
        String interpret = json_data.getString(TAG_INTERPRET); 
        String titel = json_data.getString(TAG_TITEL); 
        String album = json_data.getString(TAG_ALBUM); 
        String albumcover = json_data.getString(TAG_ALBUMCOVER); 
        String likes = json_data.getString(TAG_LIKES); 

        HashMap<String, String> map = new HashMap<String, String>(); 

        map.put(TAG_ID, id); 
        map.put(TAG_INTERPRET, interpret); 
        map.put(TAG_TITEL, titel); 
        map.put(TAG_ALBUM, album); 
        map.put(TAG_ALBUMCOVER, albumcover); 
        map.put(TAG_LIKES, likes);  

        songslist.add(map); 

       } 

但列表爲空。 JSONArray包含這些值。

+0

發佈完整的方法。 – hvgotcodes 2012-07-13 13:09:31

+4

你調試嗎?可能charts.length()== 0 – Nullpo 2012-07-13 13:09:50

+0

它不進入循環。 @Nullpo是對的。 – 2012-07-13 13:19:13

回答

2

創建地圖並將元素放入列表中的代碼是可以的。所以它的要麼

1)songslist被搞砸了。您不會顯示其創建的內容/方式,您認爲charts中包含項目,但它不包含。

+0

我會發布完整的方法... ArrayList > songslist; 歌曲列表被創建INT在ShowCharts活動上方的OnCreate – Andy 2012-07-13 15:18:20

2

你沒有進入循環。您的發佈代碼確定。 charts.length()== 0

+0

我進入循環,當我調試解釋,ID等有值,但只是跳過哈希映射後的線.. – Andy 2012-07-13 15:31:21

+0

之前「songslist.add(地圖);」 ,放入「System.out.println(歌曲列表)」,並複製該控制檯線。 – Nullpo 2012-07-13 16:40:24

+0

我不能用這種方式使用System.out.println(歌曲列表)...我爲Android開發,它似乎有點難以打印出來,因爲「Log.d」domonst工作(String,ArrayList) – Andy 2012-07-13 16:51:48

相關問題