您的位置 首页 > 数码极客

android如何获取list返回的数据

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

1.Object序列化

1)使用Serializable方式

public class SerInfo implements Serializable { private static final long serialVersionUID = 87113025L; 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) { de(Id); de(Name); } public static final Parcelable.Creator<ParInfo> CREATOR = new Creator<ParInfo>() { //实现从source中创建出类的实例的功能 @Override public ParInfo createFromParcel(Parcel source) { ParInfo parInfo = new ParInfo(); = (); (); 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<Object>的方法

ArrayList<SerInfo> listObj = new ArrayList<SerInfo>(); SerInfo serInfo1 = new SerInfo(id1,name1); SerInfo serInfo2 = new SerInfo(id2, name2); li(serInfo1); li(serInfo2); Intent intent = new Intent(); in, XXX.class); in("listobj", (Serializable) listObj); startActivity(intent);

4.接收List<Object>的方法

ArrayList<SerInfo> listObj = (ArrayList<SerInfo>) getIntent().getSerializableExtra("listobj");

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“android如何获取list返回的数据”边界阅读