Android 在片段之间直接传递复杂数据?什么';代码怎么了?
我想在两个片段之间传递数据。我传递的数据是SongDetails类的对象。下面是传递数据的片段的代码Android 在片段之间直接传递复杂数据?什么';代码怎么了?,android,android-fragments,Android,Android Fragments,我想在两个片段之间传递数据。我传递的数据是SongDetails类的对象。下面是传递数据的片段的代码 ArrayList<SongDetails> Songinfo =new........; if (Songinfo.size()>0)//Songinfo is an object of the class SongDetails.. { Bundle bundle = new Bundle(); bundle.putP
ArrayList<SongDetails> Songinfo =new........;
if (Songinfo.size()>0)//Songinfo is an object of the class SongDetails..
{
Bundle bundle = new Bundle();
bundle.putParcelableArrayList("Fragdata",Songinfo);
dv.setArguments(bundle);
}
不能在两个片段之间直接传递数据。相反,您必须通过之前必须创建的接口将数据从片段1传递到活动 然后,在活动中实现的方法中,您应该检索对片段2的对象引用,并调用您创建的公共方法并执行该作业 Android官方文档中有一个很好的教程:
您不能在两个片段之间直接传递数据。相反,您必须通过之前必须创建的接口将数据从片段1传递到活动 然后,在活动中实现的方法中,您应该检索对片段2的对象引用,并调用您创建的公共方法并执行该作业 Android官方文档中有一个很好的教程:
要将任何数据从应用程序中的任何位置传送到其他任何位置,请使用EventBus库。您也可以通过实现observer设计模式来实现这一点,但使用库要容易得多,因为它还可以为您处理线程切换(以防您需要它) 这里是链接
要将任何数据从应用程序中的任何位置传送到其他任何位置,请使用EventBus库。您也可以通过实现observer设计模式来实现这一点,但使用库要容易得多,因为它还可以为您处理线程切换(以防您需要它) 这里是链接
请粘贴日志。你得到了什么错误?歌曲信息是什么?粘贴其代码。Songinfo是SongDetails类的对象。您可以始终通过全局静态字段传递消息。@SargeBorsch例如?请粘贴日志猫。你得到了什么错误?歌曲信息是什么?粘贴它的代码。Songinfo是SongDetails类的对象。您可以始终通过全局静态字段传递消息。@SargeBorsch例如?不,您错了……有一种方法……这就是我在问题“直接”中提到的原因……虽然不推荐……不,你错了……有一种方法……这就是为什么我在问题“直接”中提到……虽然不推荐。。。
Bundle bundle=this.getArguments();
final ArrayList<SongDetails> Songinfo =bundle.getParcelableArrayList("Fragdata");
package sourcecode.jazzplayer;
import android.graphics.Bitmap;
import android.os.Parcel;
import android.os.Parcelable;
public class SongDetails implements Parcelable {
Bitmap icon;
String song;
String Artist;
String Album;
String Path;
int time;
int icLauncher;
public SongDetails() {
}
public SongDetails(Parcel in) {
String[] data = new String[4];
in.readStringArray(data);
this.Path = data[0];
this.song= data[1];
this.Album= data[2];
this.Artist = data[3];
}
public String getSong() {
return song;
}
public void setSong(String song) {
this.song = song;
}
public String getArtist() {
return Artist;
}
public void setArtist(String Artist) {
this.Artist = Artist;
}
public Bitmap getIcon() {
return icon;
}
public void setIcon(Bitmap bitmap) {
this.icon = bitmap;
}
public String getPath2() {
return Path;
}
public void setPath2(String Path) {
this.Path = Path;
}
public String getAlbum() {
return Album;
}
public void setAlbum(String Album) {
this.Album = Album;
}
public void setIcon(int icLauncher) {
this.icLauncher = icLauncher;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeStringArray(new String[] { this.Path,this.song,this.Album,this.Artist });
}
public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
public SongDetails createFromParcel(Parcel in) {
return new SongDetails(in);
}
public SongDetails[] newArray(int size) {
return new SongDetails[size];
}
};
}