日常的开发过程中,我们经常需要通过Intent和Binder传输数据,Object 类型不能直接传递,需要通过序列化。序列化是将对象状态转换为可保持或传输的格式,包括Parcelable和Serializable两种方式。

1.Object序列化

1)使用Serializable方式

public class SerInfo implements Serializable {

private static final long serialVersionUID = 8711368826010013025L;

private String Id;

private String Name;

public SerInfo(String id, String name){

Id = id;

Name = name;

}

public String getId() {

return Id;

}

public void setId(String id) {

Id = id;

}

public String getName() {

return Name;

}

public void setName(String name) {

Name = name;

}

}

2)使用Parcelable方式

public class ParInfo implements Parcelable {

private String Id;;

private String Name;

public ParInfo(){

}

public ParInfo(String id, String name){

Id = id;

Name = name;

}

public String getName() {

return Name;

}

public void setName(String name) {

Name = name;

}

public String getId() {

return Id;

}

public void setId(String id) {

Id = id;

}

@Override

public int describeContents() {

// TODO Auto-generated method stub

return 0;

}

//该方法将类的数据写入外部提供的Parcel中。

@Override

public void writeToParcel(Parcel dest, int flags) {

dest.writeString(Id);

dest.writeString(Name);

}

public static final Parcelable.Creator CREATOR = new Creator() {

//实现从source中创建出类的实例的功能

@Override

public ParInfo createFromParcel(Parcel source) {

ParInfo parInfo = new ParInfo();

parInfo.Id = source.readString();

parInfo.Name= source.readString();

return parInfo;

}

//创建一个类型为T,长度为size的数组

@Override

public ParInfo[] newArray(int size) {

return new ParInfo[size];

}

};

}

2.Serializable与Parcelable的区别

Serializable是Java中的序列化接口,使用简单但是开销略大,序列化和反序列化过程需要大量I/O操作。

Parcelable是Android系统中的序列化方式,相比较更适用于Android平台,缺点就是使用起来相对麻烦,优点是效率很高。因此在用于Intent间的数据传递时我们要首选Parcelable。

Parcelable主要用在内存序列化上,通过Parcelable将对象持久化到存储设备中,或者将对象序列化后通过网络传输,该过程稍微复杂,因此建议大家使用Serializable方式进行序列化可能效率会更高。

3.传递List的方法

ArrayList listObj = new ArrayList();

SerInfo serInfo1 = new SerInfo(id1,name1);

SerInfo serInfo2 = new SerInfo(id2, name2);

listObj.add(serInfo1);

listObj.add(serInfo2);

Intent intent = new Intent();

intent.setClass(MainActivity.this, XXX.class);

intent.putExtra("listobj", (Serializable) listObj);

startActivity(intent);

4.接收List的方法

ArrayList listObj = (ArrayList) getIntent().getSerializableExtra("listobj");

android 取出list第一页数据_Android传递ListObject的用法相关推荐

  1. PageHelper分页永远返回第一页数据

    今天前端反馈有个问题,分页返回的数据永远是一样的,经过排查,是使用PageHelper造成的问题先上问题代码 PageHelper.startPage(orderListQueryBO.getPage ...

  2. 排序后分页第一页数据和第二页数据重复问题

    问题描述     数据分页时需要根据值班时间F_Start 字段倒序,即使用OrderByDescending(t => t.F_Start),经过调试发现返回的总条数records,总页数to ...

  3. mysql创建临时表 分页_ASP+MySQl利用临时表分页第一页数据正常,下一页往后没有数据...

    具体代码如下,那位高手帮解决下: 具体代码如下,那位高手帮解决下: '初始化数据库连接 strConnection = "dsn=mydata;driver={myodbd driver}; ...

  4. android 刷新某条数据_Android 支持刷新、加载更多、带反弹效果的RecyclerView

    点击上方"Android技术杂货铺",选择"标星" 干货文章,第一时间送达! 开篇 当前市面上很多支持刷新.加载更多RecyclerView开源库,为何我这里还 ...

  5. html底部自动加载下一页,js页面滚动到底部时自动加载下一页数据

    一段滚动到页面底部自动加载更多数据的js代码,需要jquery.js . jquey.tmpl.js 支持 var Data = { PageCount: 1, PageSize: 30, IsCom ...

  6. python + selenium多进程爬取淘宝搜索页数据

    python + selenium多进程爬取淘宝搜索页数据 1. 功能描述 按照给定的关键词,在淘宝搜索对应的产品,然后爬取搜索结果中产品的信息,包括:标题,价格,销量,产地等信息,存入mongodb ...

  7. vue中elementUi筛选后分页页码恢复到第一页

    分页查询的时候,在第4页添加筛选条件查询后.返回了新数据,展示的是第一页数据但分页页码还是第四页.正确应为第1页 解决思路:条件筛选后将当前currentPage改为1 1.实现代码 <temp ...

  8. python爬虫学习(一)爬取boss直聘一页数据

    第一次爬数据遇到了很多坎儿,游走在各大大佬们的经验贴中,最终顺利完成任务,记录下来,以便我这猪脑忘记! (一)任务 爬取"上海市"+"web前端"+" ...

  9. python爬虫爬取多个页面_Python 爬虫爬取多页数据

    但是,按照常规的爬取方法是不可行的,因为数据是分页的: 最关键的是,不管是第几页,浏览器地址栏都是不变的,所以每次爬虫只能爬取第一页数据.为了获取新数据的信息,点击F12,查看页面源代码,可以发现数据 ...

最新文章

  1. 安装ubuntu时将boot目录单独挂载的意义
  2. LeetCode 64最小路径和65有效数字66加一
  3. 关于owa over https的邮箱加密访问
  4. 使用模板有什么缺点?如何避免?
  5. [LeetCode] Number of 1 Bits Reverse Integer - 整数问题系列
  6. 我看好嵌入式的未来!!!
  7. 文档中快速输入日期时间的方法
  8. 安卓开发之开启子线程以及安卓的消息机制原理
  9. Android 多媒体【转】
  10. C++基础::变量模板(variable template)
  11. 初创公司MindMaze研发情绪反应VR,让VR关怀你的喜怒哀乐
  12. 通俗易懂解释什么是“中台”
  13. php上位机,OV7670摄像头上位机软件源码
  14. android 投屏截图,手机投屏到电脑上怎样截图?图片格式可以这样设置
  15. PS软件操作应用—文字特效
  16. TCP重点系列之sack介绍
  17. NO.1——VulnHub-GoldenEye-1-Walkthrough
  18. CentOS 7 腾讯云服务器 Linux无图形化界面静默安装oracle数据库.
  19. 国际四大索引系统的一点认识:SCI,EI,ISTP(CPCI),ISR
  20. overleaf 公式_LATEX 公式通栏

热门文章

  1. P3052 [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper [模拟退火]
  2. 一步步优化JVM四:决定Java堆的大小以及内存占用
  3. window.location.href 跳转失败
  4. 单机千万并发连接实战(修订版)
  5. VS解决方案的目录结构设置和管理
  6. hadoop集群虚拟机配置
  7. linux 改变文本模分辨率
  8. python创建一个空的dataframe_python - 创建一个空的Pandas DataFrame,然后填充它?
  9. 华为云服务器怎样让网站显示不出来,云服务器网页不显示图片
  10. datatable java排序,JSF数据表(h:dataTable)DataModel排序数据