0

我使用 CustomArrayAdapter 创建我的歌曲列表并将其放入 MainActivity 。

MediaPlayer 和 SeekBar 在 MainActivity 中。

我想将我的 CustomArrayAdapter 中的音乐编号发送到 MainActivity 并播放它,但是当我使用 Intent 时,新的 MainActivity 正在再次创建。

我想向它发送数据而不再次创建活动。

我怎样才能做到这一点 ???

谢谢

4

1 回答 1

0

如果您使用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);
于 2018-09-26T15:14:09.427 回答