如何将一组对象从一个活动发送到另一个活动? [英] How do I send an array of objects from one Activity to another?

查看:64
本文介绍了如何将一组对象从一个活动发送到另一个活动?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个像这样的类:

Class persona implements Serializable {

    int age;
    String name;

}

我的第一个Activity填充数组:

And my first Activity fill an array:

persona[] p;

然后,我在另一个活动中需要此信息。 如何发送?

Then, I need this info in another Activity. How I can send it?

我尝试制作:

Bundle b = new Bundle();
b.putSerializable("persona", p);

但是我不能。

推荐答案

AFAIK是无法将可序列化数组放入束中的任何方法,这里是使用包裹的解决方案

AFAIK the is no method that put a serializable array into bundle any way here is a solution to use that uses parcel

import android.os.Parcel;
import android.os.Parcelable;

public class persona implements Parcelable {

    int age;
    String name;

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

        @Override
        public persona[] newArray(int size) {
            // TODO Auto-generated method stub
            return new persona[size];
        }

        @Override
        public persona createFromParcel(Parcel source) {
            // TODO Auto-generated method stub
            return new persona(source);
        }
    };

    public persona(Parcel in) {
        super();
        age = in.readInt();
        name = in.readString();
    }

    public persona() {
        super();
        // TODO Auto-generated constructor stub
    }

    @Override
    public int describeContents() {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeInt(age);
        dest.writeString(name);

    }
}

然后可以将数组发送为

Bundle b = new Bundle();

b.putParcelableArray("persona", p);

btw使用Parcelable而不是Serializable在Android中更有效

btw using Parcelable instead of Serializable is more efficient in Android

这篇关于如何将一组对象从一个活动发送到另一个活动?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆