Closed17
android で次の画面にクラスインスタンスを渡す

ここでやった SafeArgs を使う

percelize
すると インスタンスを渡せるようになるみたいなので、これを使って SafeArgs にインスタンスを渡すようにする

Serializable
, Parcelable
とは
役割
インスタンス情報をバイト情報に変換することで、一般のデータとしてやり取りができるようにする
両者の違い
-
Serializable
は Java の機能 -
Parcelable
は Android 独自の機能- 最適化とかされてるっぽい
- Serializable の wrapper?
データの保存先
- 責務はあくまでも
Serializable
,Parcelable
なので、保存先をメモリにするのか、ストレージにするのか、みたいなところは別依存
Serialize の仕組みの詳細
参考
- Android エンジニアの方のお話

直列化って訳は minify して一行で書けるようになるみたいな感覚と似ていそう

SafeArgs に Parcelable を渡す方法を調べる

指定できたけど、なんか build error

Unexpected error while processing layout file: fragment_detail.xml
Please file a bug on https://issuetracker.google.com/issues/new?component=192721&template=1096850 with a sample project that reproduces the problem.

補完は効くようになった

けど build したときにエラー

fragment_detail.xml
ここは safeargs 使ってるところと直接関係してない
別のエラー?

一旦 safeargs のための変更を戻してみる

remote push してないのに流れるように reset hard してしまった

戻ってきた

Type is not directly supported by 'Parcelize'. Annotate the parameter type with '@RawValue' if you want it to be serialized using 'writeValue()'
parcelable の中で parcelable じゃないクラスを含んでる的な?
(さっきと書いてること変わってないのにエラー変わったんじゃがあ)

clean & rebuild でなおることが多そう

clean & rebuild しないとすぐおかしくなる

safeargs に フルpath で指定して、build して、safeargs と同じ感じで渡せばいけた
このスクラップは2021/03/31にクローズされました