我使用CustomArrayAdapter创建了我的歌曲列表,并将其放入MainActivity中。
MediaPlayer和SeekBar在MainActivity中。
我想将音乐编号从CustomArrayAdapter发送到MainActivity并进行播放,但是当我使用Intent时,会再次创建新的MainActivity。
我想向其发送数据而无需再次创建活动。
我该怎么做?
谢谢
答案 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);