前人未踏の領域へ Androidアプリ開発編

Androidアプリ開発に関する調査メモ置き場。古い記事にはアプリ以外も含まれます。

Android: BundleにEnumをセットする

課題

画面間の値渡しでBundleにEnumの値をセット、取得したい。どうすればよいか。

対応

EnumはSerializableなので Bundleの putSerializable メソッドが使える。

enum class Mark {
    HEART,
    SPADE,
    DIAMOND,
    CLUB
}


fun newInstance(): CardFragment {
    return CardFragment().apply {
        arguments = Bundle().apply {
            putSerializable("Mark", Mark.SPADE)
        }
    }
}
    override fun onAttach(context: Context) {
        super.onAttach(context)
        val mark:Mark = requireArguments().getSerializable("Mark")!! as Mark
    }

長いことAndroidやってるのに BundleにEnumそのままセットできるの知らんかった...。