Closed17

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

tkttkt

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

tkttkt

Serializable, Parcelable とは

役割

インスタンス情報をバイト情報に変換することで、一般のデータとしてやり取りができるようにする

両者の違い

  • Serializable は Java の機能
  • Parcelable は Android 独自の機能
    • 最適化とかされてるっぽい
    • Serializable の wrapper?

データの保存先

  • 責務はあくまでも Serializable, Parcelable なので、保存先をメモリにするのか、ストレージにするのか、みたいなところは別依存

Serialize の仕組みの詳細

参考

  • Android エンジニアの方のお話
tkttkt

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

tkttkt

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

tkttkt

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

tkttkt

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

tkttkt

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

tkttkt
Type is not directly supported by 'Parcelize'. Annotate the parameter type with '@RawValue' if you want it to be serialized using 'writeValue()'

parcelable の中で parcelable じゃないクラスを含んでる的な?
(さっきと書いてること変わってないのにエラー変わったんじゃがあ)

tkttkt

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

tkttkt

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

tkttkt

safeargs に フルpath で指定して、build して、safeargs と同じ感じで渡せばいけた

このスクラップは2021/03/31にクローズされました