相同的ArrayList但不同的对象顺序

时间:2017-06-09 13:54:30

标签: java android arraylist

Helly人,

我对ArrayLists有一点疑问。我正在用Android Studio编写一个Android应用程序(一种音乐播放器),因此我有一个MainActivity,第二个Activity用于关于当前歌曲的信息和一个音乐服务。

我现在的问题是,我给服务一个歌曲列表,服务应该播放,我通过DataHolder为第二个活动提供相同的列表,以显示歌曲的信息。

但是这些名单的顺序并不一样。有人可以告诉我为什么以及如何解决这个问题?

这里有一些代码:

这里我定义了ArrayList。我想要一个随机的顺序,所以我将它洗了一次。在checkRunTimePermission中,列表被填充。

songList = new ArrayList<Song>();
        checkRunTimePermission();
        Collections.shuffle(songList);

在这里,我启动服务并将列表发送到服务和第二个活动

public void pureRandomClick (Button pureRandomButton) {
        pureRandomButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                bkgrSrv.setList(songList);
                bkgrSrv.pureRandom(max, min);
                DataHolder holder = (DataHolder) getApplicationContext();
                holder.setSongList(songList);
                startActivity(new Intent(MainActivity.this, playScreen.class));
            }
        });
    }

这是我的DataHolder类

public class DataHolder extends Application {

    private ArrayList<Song> songList;
    public ArrayList<Song> getSonglist() {return songList;}
    public void setSongList (ArrayList<Song> data) {this.songList = data;}

}

1 个答案:

答案 0 :(得分:0)

你试过这个解决方案吗?

public void setSongList (ArrayList<Song> data) {
   this.songList.addAll(data);

 }