Activity传递JavaBean对象集合给Activity/Fragment
来源:互联网 发布:衣锦夜行的燕公子知乎 编辑:程序博客网 时间:2024/05/01 08:56
一、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");
同样这种方式还可以传递很多不同类型的数据,可以自行在方法当中去找。
阅读全文
0 0
- Activity传递JavaBean对象集合给Activity/Fragment
- Activity传递对象集合到Fragment
- activity给fragment传递数据
- Activity传递Binder给Fragment
- Activity间传递对象集合
- android中传递复杂参数,activity之间和fragment之间的bundle传递集合/对象
- android中传递复杂参数,activity之间和fragment之间的bundle传递集合/对象
- android中传递复杂参数,activity之间和fragment之间的bundle传递集合/对象
- activity和activity之间传递对象,fragment和fragment之间传递对象的方法
- Activity间跳转传递对象集合List
- Activity通信-传递对象、集合总结
- activity和activity之间传递数据(字符串、集合、对象)
- Activity给Fragment传参
- 【Android开发】从Activity传递信息给Fragment
- Activity Fragment数据传递(对象)引用不变问题
- Android Fragment和Activity数据或对象的传递总结
- Android Activity之间实现数据(对象,对象集合)传递
- 把activity传递给FragmentActivity的数据再传递给FragmentActivity的子Fragment
- 滑雪——记忆化做法
- sublime text 3 下载,安装,破解,插件
- 滑雪
- [Leetcode] 85, 64, 123
- Jsp 隐式输入输出对象
- Activity传递JavaBean对象集合给Activity/Fragment
- 微信公众号支付开发全过程 --JAVA
- C语言中的缓冲机制
- MVC的理解
- 阿里面试回来,想和 Java 程序员谈一谈
- AJAX详解
- Linux命令总结
- leetcode 211. Add and Search Word
- 如何定位死循环或高CPU使用率(linux)