スマホ言語

一覧から詳細の起動 - ParcelableなインスタンスをIntentに付与してActivityを起動する

更新日:

記事一覧画面でアイテムを触るとそのアイテムの詳細画面が開くというのをやりたい。
記事詳細画面のController(Activity)を書く。

Intent

まずIntent。Activityを起動する際にパラメタの役割を果たす。
Intentには「意図」「目的」の意味がある。Activityを起動する意図とか目的とか。
ベースとなるIntentに付加的な情報を付与(putExtra)することで「意図」「目的」となる。

Intentには基本型の他にカスタムオブジェクトを付与することができる。
ただし、カスタムオブジェクトはParcelableインターフェースを実装している必要がある。

あるActivityから別のActivityを起動する際のテクニックとして、
起動される側のActivityが持つintent()メソッドを使ってIntentを作成し(つまりパラメタを渡し)、
作成したIntent経由でActivityを起動する。

companionオブジェクトにfun intent(context: Context, article: Article): Intentを作る。
このintent()を経由すれば起動に必要なパラメタ(今回はarticle: Article)を付与したIntentを取得できる。
intent()内ではputExtra()を使ってarticleとIntentを紐づけている。

onCreate(savedInstanceState: Bundle?)

onCreate()が発火したときにはIntentにParcalableなArticleインスタンスが付与済み。
Activityが持つintentからgetParcelableExtra()によりArticleインスタンスを取得して、
ビューにそのArticleインスタンスを表示する。

-スマホ言語
-

Copyright© ikuty.com , 2019 AllRights Reserved Powered by AFFINGER4.