Android 通过(Parcelable)序列化ArrayList实现Activity间传递ArrayList
16lz
2021-01-23
需求: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;}@Overridepublic int describeContents() {return 2;}@Overridepublic void writeToParcel(Parcel dest, int flags) {dest.writeInt(id);dest.writeString(name);}public static final Parcelable.Creator CREATOR =new Creator() {@Overridepublic Student createFromParcel(Parcel source){Student student = new Student();student.id=source.readInt();student.name=source.readString();return student;}@Overridepublic Student[] newArray(int size){return new Student[size];}};}
2)MainActivity跳转页面并传递参数的代码如下
/*生成参数对象*/ArrayList items=new ArrayList();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 items=bundle.getParcelableArrayList("students");
更多相关文章
- android 开发常用代码备查[更新20150520]
- Android 学习笔记3(Activity之间参数传递)
- android常用代码积累
- android典型代码系列(八)------传递一个String进行MD5编码
- 如何在 Android 上优雅地实现截屏?(附代码)
- Android一些常用知识和代码(不断更新)