語言

IParcelable 介面

定義

介面用於可將實例寫入並從 還原 Parcel的類別。

[Android.Runtime.Register("android/os/Parcelable", "", "Android.OS.IParcelableInvoker")]
public interface IParcelable : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("android/os/Parcelable", "", "Android.OS.IParcelableInvoker")>]
type IParcelable = interface
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
衍生
屬性
實作

備註

介面用於可將實例寫入並從 還原 Parcel的類別。 實作 Parcelable 介面的類別也必須有一個非空的公開靜態欄位,該欄位 CREATOR 的類型是實作該 Parcelable.Creator 介面的。

Parcelable 的典型實作如下:

<div><div class=“ds-selector-tabs”><section><h3 id=“kotlin”Kotlin>/<h3>

class MyParcelable private constructor(`in`: Parcel) : Parcelable {
                private val mData: Int = `in`.readInt()

                override fun describeContents(): Int {
                    return 0
                }

                override fun writeToParcel(out: Parcel, flags: Int) {
                    out.writeInt(mData)
                }

                companion object CREATOR: Parcelable.Creator&lt;MyParcelable?&gt; {
                    override fun createFromParcel(`in`: Parcel): MyParcelable? {
                        return MyParcelable(`in`)
                    }

                    override fun newArray(size: Int): Array&lt;MyParcelable?&gt; {
                        return arrayOfNulls(size)
                    }
                }
            }

</section><section h3><id=“java”>Java</h3>

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&lt;MyParcelable&gt; CREATOR
                        = new Parcelable.Creator&lt;MyParcelable&gt;() {
                    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();
                }
            }

</section></div></div>

Java 文件 android.os.Parcelable

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

欄位

名稱 Description
ContentsFileDescriptor

描述符位元與 : #describeContents()表示 Parcelable 物件的扁平表示包含檔案描述符。

屬性

名稱 Description
Handle

取得底層 Android 物件的 JNI 值。

(繼承來源 IJavaObject)
JniIdentityHashCode

回傳包裹實例的 java.lang.System.identityHashCode() 值。

(繼承來源 IJavaPeerable)
JniManagedPeerState

管理貴族的狀況。

(繼承來源 IJavaPeerable)
JniObjectReferenceControlBlock

介面用於可將實例寫入並從 還原 Parcel的類別。

(繼承來源 IJavaPeerable)
JniPeerMembers

成員存取與召喚支援。

(繼承來源 IJavaPeerable)
PeerReference

回傳JniObjectReference包裹後的 Java 物件實例。

(繼承來源 IJavaPeerable)

方法

名稱 Description
DescribeContents()

描述此 Parcelable 實例的分組表示中包含的特殊物件種類。

Disposed()

當實例被處理後才被召喚。

(繼承來源 IJavaPeerable)
DisposeUnlessReferenced()

如果沒有未解決的參考資料,則 Dispose()呼叫;否則,則不做任何事。

(繼承來源 IJavaPeerable)
Finalized()

當實例完成後才會被通知。

(繼承來源 IJavaPeerable)
SetJniIdentityHashCode(Int32)

將回傳的值設為 JniIdentityHashCode

(繼承來源 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

介面用於可將實例寫入並從 還原 Parcel的類別。

(繼承來源 IJavaPeerable)
SetPeerReference(JniObjectReference)

將回傳的值設為 PeerReference

(繼承來源 IJavaPeerable)
UnregisterFromRuntime()

取消註冊此實例,讓執行時不會在未來 Java.Interop.JniRuntime+JniValueManager.PeekValue 的呼叫中回傳該實例。

(繼承來源 IJavaPeerable)
WriteToParcel(Parcel, ParcelableWriteFlags)

把這個物體壓扁成一個包裹。

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

介面用於可將實例寫入並從 還原 Parcel的類別。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於