Доступ к списку из другого класса - PullRequest
0 голосов
/ 23 марта 2020

Я работаю над аудиоплеером. У меня есть фрагмент под названием HomeFragment , который показывает списки песен. Когда я нажимаю одну из песен, открывается действие, называемое SongDetailActivity , и внутри него появляется кнопка воспроизведения под названием 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;

}

1 Ответ

0 голосов
/ 24 марта 2020

Создайте глобальную переменную List<Song> lstSongs; и создайте экземпляр в onCreate() из SongDetailActivity следующим образом:

lstSongs = DataSource.getMusic();

Это должно служить вашей цели.

...