android activity之间传递list,Android 通过(Parcelable)序列化ArrayList实现Activity间传递ArrayList...

本文介绍如何在Android中通过实现Parcelable接口序列化ArrayList,以便在MainActivity和TestActivity之间传递Student对象列表。详细步骤包括创建Student类,准备ArrayList数据,以及在目标Activity中接收并解析数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求: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 CREATOR =new Creator() {

@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 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");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值