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;}
}
答案 0 :(得分:0)
你试过这个解决方案吗?
public void setSongList (ArrayList<Song> data) {
this.songList.addAll(data);
}