이것저것/My_Work

[Android] Intent 로 객체 전달 (parcelable)

우담바라 2015. 3. 5. 16:27

호출부 Code(


String str1 = "HELLO";

String str2 = "Android";


Intent intent = new Intent(this, nextcall.class);

USERType user= new USERType(1,str1,str2);

intent.putExtra("CALL_CODE", user);


startActivityForResult(intent, REQUEST_CALL);



수신부 Code

Bundle bundle = getIntent().getExtras();


USERType muser = (USERType )bundle.getParcelable("CALL_CODE");


int number = muser.getNumber();

String str1 = muser.getStr1();



Parcelable 을 구현한 USERType 객체 정의 

import android.os.Parcel;

import android.os.Parcelable;

import android.util.Log;


public class USERType implements Parcelable {

int  number=0;

String str1=null;

String str2=null;

public USERType (int number, String str1, String str2) {

this.numbernumber;

this.str1= str1;

this.str2= str2;

}


public USERType (Parcel in) {

number= in.readInt();

str1= in.readString();

str2= in.readString();

}


//각 값을 넘겨주기 위한 get터 생성

public int getNumber() {

return number;

}

public String getChagneDay() {

return str1;

}


public String getChagnePeriod() {

return str2;

}

@Override

public int describeContents() {

return 0;

}


@Override

public void writeToParcel(Parcel dest, int flags) {

dest.writeInt(number);

dest.writeString(str1);

dest.writeString(str2);

}


private void readFromParcel(Parcel in) {

number = in.readInt();

str1 = in.readString();

str2 = in.readString();

}


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

@Override

public USERType createFromParcel(Parcel source) {

return new USERType (source);

}


@Override

public USERType[] newArray(int size) {


return new USERType[size];

}

};

}