【Kotlin/Android Studio】Bundleとは?データの保存とsavedInstanceState

この記事からわかること
- Android Studio/KotlinでBundleクラスの実装方法
- savedInstanceStateの使い方
- ActivityやFragment間でデータを受け渡す方法
\ アプリをリリースしました /
参考文献:公式リファレンス:SimpleOnItemTouchListener
環境
- Android Studio:Flamingo
- Kotlin:1.8.20
Bundleとは?
BundleとはAndroidでデータを格納する入れ物として用意されているコンテナです。保存するデータはキーと値がペアで管理されており、Activity間やFragment間でのデータの受け渡しに利用されることが多いです。ActivityではIntent
クラスの内部でBundleが使用されています。
Bundleとは「束ねる」や「包みにする」といった意味を持つ英単語であり、その言葉通りAndroidにおいてデータを束ねて保管する役割を持っています。
savedInstanceState
Bundleが使用されている箇所としてActivityやFragmentなどの再生成時のデータ保持に利用されています。Androidの画面ではデバイス画面の回転時やバックスタックからの戻り時などActivityやFragmentなどが再生成されるタイミングが多いです。その際にデータが消失してしまわないようにsavedInstanceState
というBundleを使用したデータ保存の仕組みが用意されています。
破棄される前に呼ばれるonSaveInstanceState
メソッド内でBundle内に格納し、再生成時に呼ばれるonRestoreInstanceState
メソッド内やonCreate
メソッド内で保存したデータを参照することが可能になっています。
Bundleクラスの使い方
Bundleクラスはキーと値でデータを保管する入れ物でした。使用するにはまずBundle
インスタンスを生成します。生成したインスタンス内にデータを格納するにはputXXXXX
メソッドを使用します。
例えばFragmentにデータを渡したい場合はFragmentのarguments
にBundleを渡します。あとはそのまま遷移させます。
遷移先となる「SecondFragment」ではgetXXXXX
メソッドを使用してデータを取得します。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。