отправить данные из ArrayAdapter в MainActivity без обновления MainActivity - PullRequest
0 голосов
/ 26 сентября 2018

Я создаю список своей песни с CustomArrayAdapter и помещаю его в MainActivity.

MediaPlayer и SeekBar находятся в MainActivity.

Я хочу отправить музыкальный номер из моего CustomArrayAdapter в MainActivity и воспроизвести его, но когда я использую Intent, новая MainActivity снова создается.

Я хочу отправить данные в него без создания Activity снова.

как я могу это сделать ???

спасибо

1 Ответ

0 голосов
/ 26 сентября 2018

Если вы используете Intent и передаете свои данные, это создаст новую активность, что вы можете сделать, это создать интерфейс в вашем адаптере следующим образом.

public interface GetSongCallBack  { 
      void getSongNumber(int songNumber);
}

Когда вы инициализируете CustomAdapter в действии, передайте экземпляр этого интерфейса.Что будет выглядеть так:

CustomAdapter adapter = new CustomAdapter(..., new CustomAdapter.GetSongCallBack() {
  public void getSongNumber(int songNumber) { 
  // do something here...
  }});

Наконец, когда вы хотите, чтобы ваша активность знала, что песня изменилась, вызовите getSongNumber() этот метод.Вы можете сделать это следующим образом:

В конструкторе CustomAdapters вы получаете экземпляр интерфейса, поэтому

Объявите глобальную переменную:

GetSongCallBack callback; 

Также добавьте эту строку вконструктор,

public CustomAdapter(... ,GetSongCallBack callback) {
     .
     .
     this.callBack = callBack; 
  }

И вызов метода происходит так:

callBack.getSongNumber(song);
...