将数据从ArrayAdapter发送到MainActivity并续签MainActivity

时间:2018-09-26 14:40:34

标签: java android android-intent android-arrayadapter custom-arrayadapter

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

MediaPlayer和SeekBar在MainActivity中。

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

我想向其发送数据而无需再次创建活动。

我该怎么做?

谢谢

1 个答案:

答案 0 :(得分: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);