Intent에서 객체를 전달하는 두 가지 방법 중 하나인 Parcelable 정보
9842 단어 ParcelableIntent에서 객체 전송
4
public class MyParcelable implements Parcelable {
private int mData;
public int describeContents() {
return 0;
}
public void writeToParcel(Parcel out, int flags) {
out.writeInt(mData);
}
public static final Parcelable.Creator<MyParcelable> CREATOR
= new Parcelable.Creator<MyParcelable>() {
public MyParcelable createFromParcel(Parcel in) {
return new MyParcelable(in);
}
public MyParcelable[] newArray(int size) {
return new MyParcelable[size];
}
};
private MyParcelable(Parcel in) {
mData = in.readInt();
}
}
이 몇 가지 방법은 반드시 실현해야 한다. 이 예시에서 단지 하나의 유형, 즉 int만 있다.복잡한 유형은 어떻게 처리합니까?
boolean 유형인 경우 다음과 같이 작성할 수 있습니다.
writeToParcel 메서드에 다음과 같이 적습니다.
dest.writeString(Boolean.toString(favorited));
privateMy Parcelable(Parcelin) 메서드에 다음과 같이 적습니다.
favorited = Boolean.parseBoolean(in.readString());
Arraylist 유형은 다음과 같습니다. 그리고 PicUrl 클래스도 Parcelable을 상속해야 합니다.
pic_Urls = in.readArrayList(Pic_Url.class.getClassLoader());
dest.writeList(pic_Urls);
Date 유형은 다음과 같습니다.
dest.writeLong(created_at.getTime());
created_at = new Date(in.readLong());
객체 User는 이렇게 할 수 있습니다. 또한 User라는 클래스도 Parcelable를 계승해야 합니다.
user = in.readParcelable(User.class.getClassLoader());
dest.writeParcelable(user, flags);
List
dest.writeStringList(pic_Urls);
pic_Urls= in.readArrayList(String.class.getClassLoader());
이상의 방법은 개인이 시험해 보면 실행할 수 있다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Intent에서 객체를 전달하는 두 가지 방법 중 하나인 Parcelable 정보안드로이드 개발자의 예시를 먼저 보십시오: 이 몇 가지 방법은 반드시 실현해야 한다. 이 예시에서 단지 하나의 유형, 즉 int만 있다. 복잡한 유형은 어떻게 처리합니까? boolean 유형인 경우 다음과 같이 작성...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.