将数据从 ArrayAdapter 发送到 MainActivity 而不更新 MainActivity

send data from ArrayAdapter to MainActivity withot renew MainActivity

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

MediaPlayer 和 SeekBar 在 MainActivity .

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

我想将数据发送给它而无需再次创建 Activity。

我该怎么做???

谢谢

如果您使用 Intent 并传递您的数据,它将创建新的 activity,您可以做的是在您的适配器中创建一个接口,如下所示。

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

当您在 activity 中初始化 CustomAdapter 时,传递此接口的一个实例。 看起来像这样:

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

最后,只要您想让 activity 知道歌曲已更改,请调用 getSongNumber() 此方法。 你可以这样做,

在 CustomAdapters 构造函数中,您正在获取接口的实例,因此,

声明一个全局变量:

GetSongCallBack callback; 

同样在构造函数中加入这一行,

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

调用方法是这样的,

callBack.getSongNumber(song);