我使用 CustomArrayAdapter 创建我的歌曲列表并将其放入 MainActivity 。
MediaPlayer 和 SeekBar 在 MainActivity 中。
我想将我的 CustomArrayAdapter 中的音乐编号发送到 MainActivity 并播放它,但是当我使用 Intent 时,新的 MainActivity 正在再次创建。
我想向它发送数据而不再次创建活动。
我怎样才能做到这一点 ???
谢谢
我使用 CustomArrayAdapter 创建我的歌曲列表并将其放入 MainActivity 。
MediaPlayer 和 SeekBar 在 MainActivity 中。
我想将我的 CustomArrayAdapter 中的音乐编号发送到 MainActivity 并播放它,但是当我使用 Intent 时,新的 MainActivity 正在再次创建。
我想向它发送数据而不再次创建活动。
我怎样才能做到这一点 ???
谢谢
如果您使用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);