這邊簡單介紹兩者差異和選擇:
Parcelable
:
Serializable
好,在記憶體開銷方面較小。Parcelable
,如activity
、fragment
間的資料傳遞。Serializable
:
Serializable
可將資料持久化儲存。Serializable
。由於昨天提到argsType
今天順便舉例每個型別應該如何傳遞
尤其是Parcelable
和Serializable
(以及array
)
<argument
android:name="myInt"
app:argType="integer[]"
app:nullable="true"
android:defaultValue="@null" />
app:nullable="true"
。@null
。<argument
android:name="myInt"
app:argType="integer"
app:nullable="false"
android:defaultValue="0" />
<argument
android:name="myInt"
app:argType="float"
app:nullable="false"
android:defaultValue="0" />
<argument
android:name="myInt"
app:argType="long"
app:nullable="false"
android:defaultValue="0L" />
<argument
android:name="myInt"
app:argType="boolean"
app:nullable="false"
android:defaultValue="false" />
<argument
android:name="myString"
app:argType="string"
app:nullable="true"
android:defaultValue="@null" />
//明天補上>_<
enum class MyGenderEnum {
MALE, FEMALE
}
<argument
android:name="navigateFrom"
app:argType="com.example.MyGenderEnum"
/>
@Parcelize
data class MyData(
val id: Int,
val name: String,
) : Parcelable
<argument
android:name="editBankCard"
android:defaultValue="@null"
app:argType="com.example.MyData"
app:nullable="true" />
data class MyData(
val id: Int,
val name: String,
) : Serializable
<argument
android:name="editBankCard"
android:defaultValue="@null"
app:argType="com.example.MyData"
app:nullable="true" />