将数据从 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);
我使用 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);