我用CustomArrayAdapter创建了一个我的歌曲列表,并将其放入MainActivity中。
MediaPlayer和SeekBar在MainActivity中。
我想将音乐号码从我的自定义阵列适配器发送到主活动并播放它,但是当我使用 Intent 时,新的主活动再次创建。
我想在不再次创建活动的情况下向其发送数据。
我该怎么做???
谢谢
如果您使用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()
。 你可以这样做,
在自定义适配器构造函数中,您正在获取接口的实例,因此,
声明一个全局变量:
GetSongCallBack callback;
还要在构造函数中添加此行,
public CustomAdapter(... ,GetSongCallBack callback) {
.
.
this.callBack = callBack;
}
调用方法如下,
callBack.getSongNumber(song);