728x90
반응형
질문 : Intents를 사용하여 한 Android 활동에서 다른 활동으로 객체를 보내는 방법은 무엇입니까?
Intent putExtra()
메서드를 사용하여 한 Activity 에서 다른 Activity로 사용자 지정 유형의 개체를 어떻게 전달할 수 있습니까?
답변
물체를 그냥 지나가는 경우 Parcelable가 이를 위해 설계되었습니다. 그것은 자바의 네이티브 직렬화를 사용하는 것보다 사용에 조금 더 많은 노력이 필요하지만, 그것의 빠른 방법은 (그리고 나는 평균 방법, 빠른 방법).
문서에서 구현하는 방법에 대한 간단한 예는 다음과 같습니다.
// simple class that just has one member property as an example
public class MyParcelable implements Parcelable {
private int mData;
/* everything below here is for implementing Parcelable */
// 99.9% of the time you can just ignore this
@Override
public int describeContents() {
return 0;
}
// write your object's data to the passed-in Parcel
@Override
public void writeToParcel(Parcel out, int flags) {
out.writeInt(mData);
}
// this is used to regenerate your object. All Parcelables must have a CREATOR that implements these two methods
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];
}
};
// example constructor that takes a Parcel and gives you an object populated with it's values
private MyParcelable(Parcel in) {
mData = in.readInt();
}
}
주어진 Parcel에서 검색 할 필드가 두 개 이상인 경우 입력 한 순서와 동일한 순서 (즉, FIFO 접근 방식)로이를 수행해야합니다.
당신이 당신의 객체가 구현 일단 Parcelable
그것은 당신에 넣어 단지 문제 텐트 에 putExtra () :
Intent i = new Intent();
i.putExtra("name_of_extra", myParcelableObject);
그런 다음 getParcelableExtra ()를 사용하여 다시 가져올 수 있습니다.
Intent i = getIntent();
MyParcelable myParcelableObject = (MyParcelable) i.getParcelableExtra("name_of_extra");
객체 클래스가 Parcelable 및 Serializable을 구현하는 경우 다음 중 하나로 캐스트해야합니다.
i.putExtra("parcelable_extra", (Parcelable) myParcelableObject);
i.putExtra("serializable_extra", (Serializable) myParcelableObject);
출처 : https://stackoverflow.com/questions/2139134/how-to-send-an-object-from-one-android-activity-to-another-using-intents
728x90
반응형
'프로그래밍 언어 > Android' 카테고리의 다른 글
안드로이드에서 프로그래밍 방식으로 화면 밀도를 얻는 방법 (0) | 2021.06.26 |
---|---|
Android 소스 애플리케이션 코드를 찾아볼 수 있는 사이트 (0) | 2021.06.24 |
Android SDK 설치가 JDK를 찾지 못함 (0) | 2021.06.23 |
Android 애플리케이션의 빌드 / 버전 번호를 얻는 방법 (0) | 2021.06.23 |
Android에서 TextView를 스크롤 가능하게 만들기 (0) | 2021.06.23 |