通过使用setter和getters类,我在设置设置的第一个值时将值设置为MusicDetailsObject(pojo class)
,然后设置它设置的第二个值,并替换第一个值等等......设置值使用循环:
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}
所以,请让我知道如何设置个人价值。
提前致谢。
答案 0 :(得分: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);
}