簡體   English   中英

Android將ParseObject發送到另一個活動

[英]Android Send ParseObject to another activity

我有一個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從一個活動發送到另一個活動?

謝謝,

您可以使用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];
            }
        };

使用當前版本的Parse SDK for Android 1.19.0 ParseObject已經實現了Parcelable,這意味着您可以簡單地執行:

目前的活動

Intent intent = new Intent(CurrentActivity.this, NextActivity.class);
intent.putExtra("PARSE_OBJECT_EXTRA", parseObject);
startActivity(intent);

下一個活動

ParseObject parseObject = getIntent().getParcelableExtra("PARSE_OBJECT_EXTRA");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM