从另一个 class 访问列表
Accessing a List from another class
我正在研究音频播放器。我有一个名为 HomeFragment 的片段,它显示了歌曲列表。当我按下其中一首歌曲时,名为 SongDetailActivity 的 activity 打开,其中有一个名为 play_fab 的播放按钮.我想在按下播放按钮时创建一个通知。
我在 DataSource.java 中有歌曲列表。
我的问题出在这一行
SongDetailActivity:
CreateNotification.createNotification(SongDetailActivity.this, lstSongs.get(1),R.drawable.ic_pause_black_24dp,1,lstSongs.size()-1);
lstSongs 显示为红色,我无法访问它。我应该怎么做才能到达 lstSongs。有人可以帮忙吗?
我的代码:
SongDetailActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_song_detail);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
createChannel();
}
play_fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CreateNotification.createNotification(SongDetailActivity.this, lstSongs.get(1),R.drawable.ic_pause_black_24dp,1,lstSongs.size()-1);
}
});
DataSource.java
public class DataSource {
public static List<Song> getMusic(){
List<Song> lstSongs = new ArrayList<>();
lstSongs.add(new Song("Title1","Artist1", R.drawable.cover1,"Category Name 1"));
lstSongs.add(new Song("Title2","Artist2",R.drawable.cover2,"Category Name 2"));
lstSongs.add(new Song("Title3","Artist3",R.drawable.cover3,"Category Name 3"));
lstSongs.add(new Song("Title4","Artist4",R.drawable.cover4,"Category Name 4"));
lstSongs.add(new Song("Title5","Artist5",R.drawable.cover5,"Category Name 5"));
lstSongs.add(new Song("Title6","Artist6",R.drawable.cover6,"Category Name 6"));
lstSongs.add(new Song("Title7","Artist7",R.drawable.cover7,"Category Name 7"));
return lstSongs;
}
创建一个全局变量List<Song> lstSongs;
并在SongDetailActivity
的onCreate()
实例化如下:
lstSongs = DataSource.getMusic();
它应该符合您的目的。
我正在研究音频播放器。我有一个名为 HomeFragment 的片段,它显示了歌曲列表。当我按下其中一首歌曲时,名为 SongDetailActivity 的 activity 打开,其中有一个名为 play_fab 的播放按钮.我想在按下播放按钮时创建一个通知。
我在 DataSource.java 中有歌曲列表。
我的问题出在这一行
SongDetailActivity:
CreateNotification.createNotification(SongDetailActivity.this, lstSongs.get(1),R.drawable.ic_pause_black_24dp,1,lstSongs.size()-1);
lstSongs 显示为红色,我无法访问它。我应该怎么做才能到达 lstSongs。有人可以帮忙吗?
我的代码:
SongDetailActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_song_detail);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
createChannel();
}
play_fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CreateNotification.createNotification(SongDetailActivity.this, lstSongs.get(1),R.drawable.ic_pause_black_24dp,1,lstSongs.size()-1);
}
});
DataSource.java
public class DataSource {
public static List<Song> getMusic(){
List<Song> lstSongs = new ArrayList<>();
lstSongs.add(new Song("Title1","Artist1", R.drawable.cover1,"Category Name 1"));
lstSongs.add(new Song("Title2","Artist2",R.drawable.cover2,"Category Name 2"));
lstSongs.add(new Song("Title3","Artist3",R.drawable.cover3,"Category Name 3"));
lstSongs.add(new Song("Title4","Artist4",R.drawable.cover4,"Category Name 4"));
lstSongs.add(new Song("Title5","Artist5",R.drawable.cover5,"Category Name 5"));
lstSongs.add(new Song("Title6","Artist6",R.drawable.cover6,"Category Name 6"));
lstSongs.add(new Song("Title7","Artist7",R.drawable.cover7,"Category Name 7"));
return lstSongs;
}
创建一个全局变量List<Song> lstSongs;
并在SongDetailActivity
的onCreate()
实例化如下:
lstSongs = DataSource.getMusic();
它应该符合您的目的。