概述
一、Activity之间传递JavaBean对象集合
1、Bundle+Intent
第一种方式:Bean对象实现Serializable接口,优点实现方式简单,缺点效率低。
public class TestJavaBean implements Serializable {
private String englishTitle;
private String contentTitle;
private String chineseTitle;
private String contentUrl;
private String picUrl;
private String creatTime;
private String readCount;
public String getContentUrl() {
return contentUrl;
}
public void setContentUrl(String contentUrl) {
this.contentUrl = contentUrl;
}
public String getEnglishTitle() {
return englishTitle;
}
public void setEnglishTitle(String englishTitle) {
this.englishTitle = englishTitle;
}
public String getContentTitle() {
return contentTitle;
}
public void setContentTitle(String contentTitle) {
this.contentTitle = contentTitle;
}
public String getChineseTitle() {
return chineseTitle;
}
public void setChineseTitle(String chineseTitle) {
this.chineseTitle = chineseTitle;
}
public String getCreatTime() {
return creatTime;
}
public void setCreatTime(String creatTime) {
this.creatTime = creatTime;
}
public String getPicUrl() {
return picUrl;
}
public void setPicUrl(String picUrl) {
this.picUrl = picUrl;
}
public String getReadCount() {
return readCount;
}
public void setReadCount(String readCount) {
this.readCount = readCount;
}
}
可以看到只需要实现Serializable接口,不需要其他操作。
第二种方式:JavaBean对象实现Parcelable接口,优点效率更高,缺点就是相对Serializable接口来说实现稍微复杂。
public class SlideshowBean implements Parcelable{
private String englishTitle;
private String contentTitle;
private String chineseTitle;
private String contentUrl;
private String picUrl;
private String creatTime;
private String readCount;
public SlideshowBean(){
super();
}
public SlideshowBean(String englishTitle,String contentTitle,String chineseTitle,
String contentUrl,String picUrl,String creatTime,String readCount){
super();
this.englishTitle = englishTitle;
this.contentTitle = contentTitle;
this.chineseTitle = chineseTitle;
this.contentUrl = contentUrl;
this.picUrl = picUrl;
this.creatTime = creatTime;
this.readCount = readCount;
}
public String getEnglishTitle() {
return englishTitle;
}
public void setEnglishTitle(String englishTitle) {
this.englishTitle = englishTitle;
}
public String getContentTitle() {
return contentTitle;
}
public void setContentTitle(String contentTitle) {
this.contentTitle = contentTitle;
}
public String getChineseTitle() {
return chineseTitle;
}
public void setChineseTitle(String chineseTitle) {
this.chineseTitle = chineseTitle;
}
public String getContentUrl() {
return contentUrl;
}
public void setContentUrl(String contentUrl) {
this.contentUrl = contentUrl;
}
public String getPicUrl() {
return picUrl;
}
public void setPicUrl(String picUrl) {
this.picUrl = picUrl;
}
public String getCreatTime() {
return creatTime;
}
public void setCreatTime(String creatTime) {
this.creatTime = creatTime;
}
public String getReadCount() {
return readCount;
}
public void setReadCount(String readCount) {
this.readCount = readCount;
}
@Override
public String toString() {
return "SlideshowBean{" +
"englishTitle='" + englishTitle + ''' +
", contentTitle='" + contentTitle + ''' +
", chineseTitle='" + chineseTitle + ''' +
", contentUrl='" + contentUrl + ''' +
", picUrl='" + picUrl + ''' +
", creatTime='" + creatTime + ''' +
", readCount='" + readCount + ''' +
'}';
}
@Override
public int describeContents() {
return 0;
}
//写入数据
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(englishTitle);
dest.writeString(contentTitle);
dest.writeString(chineseTitle);
dest.writeString(contentUrl);
dest.writeString(picUrl);
dest.writeString(creatTime);
dest.writeString(readCount);
}
//读取数据
public static final Parcelable.Creator<SlideshowBean> CREATOR = new Creator<SlideshowBean>() {
@Override
public SlideshowBean createFromParcel(Parcel source) {
SlideshowBean slideshowBean = new SlideshowBean();
slideshowBean.englishTitle = source.readString();
slideshowBean.contentTitle = source.readString();
slideshowBean.chineseTitle = source.readString();
slideshowBean.contentUrl = source.readString();
slideshowBean.picUrl = source.readString();
slideshowBean.creatTime = source.readString();
slideshowBean.readCount = source.readString();
return slideshowBean;
}
@Override
public SlideshowBean[] newArray(int size) {
return new SlideshowBean[size];
}
};
}
注意:写入和读取的操作顺序要一致。
代码中传递:
//获取Bundle对象实例
Bundle bundle = new Bundle();
//put集合数据
bundle.putParcelableArrayList("SlideshowBean", (ArrayList<? extends Parcelable>) slideshowBeenList);
//获取Intent对象实例
Intent intent = new Intent();
//将bundle添加到Intent中
intent.putExtras(bundle);
获取数据比较简单,在Activity中获取传递的Intent对象将Bundle对象取出,调用相对应的方法取出Bundle中的数据就可以了,这里Bundle添加实现了Serializable和Parcelable的JavaBean对象集合的方法没多大区别,只是putParcelableArrayList变成了putSerializableArrayList。
二、Activity传递JavaBean集合对象到Fragment
1、Bundle方式,同样JavaBean也要实现序列化的接口,同上。
代码中传递:
//将数据传入Fragment
bbcSixminutesFragment = new BbcSixminutesFragment();
Bundle bundle = new Bundle();
bundle.putParcelableArrayList("SlideshowBean", (ArrayList<? extends Parcelable>) slideshowBeenList);
bbcSixminutesFragment.setArguments(bundle);
代码中获取:
//获取Bundle中的数据
Bundle bundle = getArguments();
slideshowBeenList = bundle.getParcelableArrayList("SlideshowBean");
同样这种方式还可以传递很多不同类型的数据,可以自行在方法当中去找。
最后
以上就是尊敬白羊为你收集整理的Activity传递JavaBean对象集合给Activity/Fragment的全部内容,希望文章能够帮你解决Activity传递JavaBean对象集合给Activity/Fragment所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复