2014-09-29 75 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); 
}