Android 将 ParseObject 发送到另一个 Activity

2024-03-09

我有一个 ParseObject 我想发送到另一个活动:

public class HWMMatch extends ParseObject implements Serializable{

    public HWMMatch(){ }

    public ParseUser GetUser1() {
        return (ParseUser)getParseObject("user1");
    }
    public void SetUser1(ParseUser user) {
        put("user1", user);
    }

    public ParseUser GetUser2() {
        return (ParseUser)getParseObject("user2");
    }
    public void SetUser2(ParseUser user) {
        put("user2", user);
    }
}

在MyActivity1.java中

Intent myIntent = new Intent(this, MyActivity2.class);
myIntent.putExtra("match", match);
startActivity(myIntent);

// Here match.getParseObject("user1") is defined

但在我的 MyActivity2.java 中

Intent intent = getIntent();
Serializable s = intent.getExtras().getSerializable("match");
if(s != null)
   this.match = (Match) s;

// Here match.getParseObject("user1") is null

如何将 ParseObject 从一个活动发送到另一个活动?

Thanks,


您可以使用 Parcelable。这是一个示例

public class Match extends ParseObject implements Parcelable {
    private int intItem;
    private String stringItem;

    public Match(Parcel in) {
        this.intItem = in.readInt();
        this.stringItem = in.readString();
    }
    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeInt(this.intItem);
        dest.writeString(this.stringItem);
    }

    public static final Creator CREATOR = new Parcelable.Creator() {
        public Match createFromParcel(Parcel in) {
            return new Match(in);
        }

        public Match[] newArray(int size) {
            return new Match[size];
        }
    };
}

只需添加如下所示的额外内容即可。

        public Match(Parcel in) {
            this.intItem = in.readInt();
            this.stringItem = in.readString();
        }
        @Override
        public int describeContents() {
            return 0;
        }

        @Override
        public void writeToParcel(Parcel dest, int flags) {
            dest.writeInt(this.intItem);
            dest.writeString(this.stringItem);
        }

        public static final Creator CREATOR = new Parcelable.Creator() {
            public Match createFromParcel(Parcel in) {
                return new Match(in);
            }

            public Match[] newArray(int size) {
                return new Match[size];
            }
        };
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 将 ParseObject 发送到另一个 Activity 的相关文章