2014-09-29 78 views
-2

通過使用setter和getters類,我設置值爲MusicDetailsObject(pojo class)當它設置第一個值時,然後設置第二個值它被設置,也取代第一個值等等......設置值使用循環:通過在模型類中使用setter保存的數據被重複保存?

for(int k=0;k<songs.length();k++) 
       { 
       JSONObject songObject = songs.getJSONObject(k); 
       //mName.add(songObject.getString("name")); 
       mObject.setmName(songObject.getString("name")); 
       //mURL .add(songObject.getString("url")); 
       mObject.setmURL(songObject.getString("url")); 
       //mListId .add(songObject.getString("id")); 
       mObject.setmID(songObject.getString("id")); 
       mAlbumList.add(mObject); 
       } 

作爲

array1{id = 101 
name = Jigarthanda} 

第一時間設定值在設定值第二時間它示出這樣的:

array1{id = 102 
name = Mundasupatti}, array1{id = 102 
name = Mundasupatti} 

所以請讓我知道如何設置個人價值。

在此先感謝。

回答

2

問題是,在循環內部,你永遠不會創建mObject的新實例,所以你唯一的實例正在被重用。

for(int k=0;k<songs.length();k++){ 
    JSONObject songObject = songs.getJSONObject(k); 
    mObject = new MyObject() // -> NOW you are assigning values to a different instance. 
    //mName.add(songObject.getString("name")); 
    mObject.setmName(songObject.getString("name")); 
    //mURL .add(songObject.getString("url")); 
    mObject.setmURL(songObject.getString("url")); 
    //mListId .add(songObject.getString("id")); 
    mObject.setmID(songObject.getString("id")); 
    mAlbumList.add(mObject); 
}