Android 通过(Parcelable)序列化ArrayList实现Activity间传递ArrayList
2014-01-13 15:41
591 查看
需求:MainActivity跳转到TestActivity并将ArrayLis作为参数传递。
1)类Student的代码如下:
package com.example.testa;
import android.os.Parcel;
import android.os.Parcelable;
public class Student implements Parcelable{
public Student(){}
public Student (int _id, String _name){
setId(_id);
setName(_name);
}
private int id;
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Override
public int describeContents() {
return 2;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(id);
dest.writeString(name);
}
public static final Parcelable.Creator<Student> CREATOR =new Creator<Student>() {
@Override
public Student createFromParcel(Parcel source){
Student student = new Student();
student.id=source.readInt();
student.name=source.readString();
return student;
}
@Override
public Student[] newArray(int size){
return new Student[size];
}
};
}
2)MainActivity跳转页面并传递参数的代码如下
/*生成参数对象*/
ArrayList<Student> items=new ArrayList<Student>();
Parcel parcel=Parcel.obtain();
Student item1=Student.CREATOR.createFromParcel(parcel);
item1.setId(1);
item1.setName("chad.cao");
items.add(item1);
Student item2=Student.CREATOR.createFromParcel(parcel);
item2.setId(2);
item2.setName("catherine.yu");
items.add(item2);
parcel.recycle();
Intent intent=new Intent(MainActivity.this, TestActivity.class);
intent.putParcelableArrayListExtra("students", items);
this.startActivity(intent);
3)TestActivity中获取参数的代码如下
Bundle bundle=this.getIntent().getExtras();
ArrayList<Student> items=bundle.getParcelableArrayList("students");
1)类Student的代码如下:
package com.example.testa;
import android.os.Parcel;
import android.os.Parcelable;
public class Student implements Parcelable{
public Student(){}
public Student (int _id, String _name){
setId(_id);
setName(_name);
}
private int id;
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Override
public int describeContents() {
return 2;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(id);
dest.writeString(name);
}
public static final Parcelable.Creator<Student> CREATOR =new Creator<Student>() {
@Override
public Student createFromParcel(Parcel source){
Student student = new Student();
student.id=source.readInt();
student.name=source.readString();
return student;
}
@Override
public Student[] newArray(int size){
return new Student[size];
}
};
}
2)MainActivity跳转页面并传递参数的代码如下
/*生成参数对象*/
ArrayList<Student> items=new ArrayList<Student>();
Parcel parcel=Parcel.obtain();
Student item1=Student.CREATOR.createFromParcel(parcel);
item1.setId(1);
item1.setName("chad.cao");
items.add(item1);
Student item2=Student.CREATOR.createFromParcel(parcel);
item2.setId(2);
item2.setName("catherine.yu");
items.add(item2);
parcel.recycle();
Intent intent=new Intent(MainActivity.this, TestActivity.class);
intent.putParcelableArrayListExtra("students", items);
this.startActivity(intent);
3)TestActivity中获取参数的代码如下
Bundle bundle=this.getIntent().getExtras();
ArrayList<Student> items=bundle.getParcelableArrayList("students");
相关文章推荐
- c#数据的序列化和反序列化(推荐版)
- VBS ArrayList Class vbs中的数组类
- C#中ArrayList的使用方法
- C#中Array与ArrayList用法及转换的方法
- jquery mobile changepage的三种传参方法介绍
- asp.net 序列化and反序列化演示
- Json序列化和反序列化方法解析
- 深入理解Java对象的序列化与反序列化的应用
- jsp地址栏传中文显示乱码解决方法分享
- 使用 ServiceStack.Text 序列化 json的实现代码
- php 中序列化和json使用介绍
- Java中ArrayList类的使用方法
- java中ArrayList 、LinkList的区别分析
- 浅析java中ArrayList与Vector的区别以及HashMap与Hashtable的区别
- JAVA LinkedList和ArrayList的使用及性能分析
- 基于序列化存取实现java对象深度克隆的方法详解
- Java序列化机制与原理的深入分析
- 浅析JSON序列化与反序列化
- php json与xml序列化/反序列化
- JDK API阅读体会 1-为什么大家都不推荐删除List中值