Adapterを作成する際にcontextとしてthisをMainActivityから渡しているのだけれどそもそもContextって何かわからないので調べた。
参考にしたサイト

アプリマーケティングプラットフォーム【MGRe(メグリ)】
MGRe(メグリ)は理想の顧客体験(CX)をつくるアプリマーケティングプラットフォームです。アプリの開発から運用、データの分析、カスタマイズまでワンストップでサポートしています。
追記。ここもわかりやすい

adapterについて - Qiita
Adapterとは android studioでlistViewを使う際にはadapterを使わなければなりません。 adapterのはdeveloperでは Adapter object acts as a bridge between an AdapterView...
なんとなくの理解
MainActivity.kt
|
1 2 3 |
// CustomAdapterの生成と設定 mCustomAdapter = CustomAdapter(this, mAnimalList) listView.adapter = mCustomAdapter |
CustomAdapter.kt
|
1 2 |
class CustomAdapter(context: Context, var mAnimalList: List<Animal>, val listener: CustomAdapterListener) : ArrayAdapter<Animal>(context, 0, mAnimalList) { (省略) |
MainActivity.ktでmCustomAdapterを生成するときにthisを設定している。
参考にしたサイトを見ると、以下の説明がされている。
|
1 |
Contextはabstractなクラスで実体はサブクラスに定義されています。上記developerページに説明があるように、Contextはアプリ周りの環境にアクセスするためのインターフェースを担っており、リソース取得、Activityの起動、intentの送受信など幅広い用途に関わります。 |
とりあえずMainActivityのサブクラスとして動くために呼び出し元となるMainActivityクラスの情報を連携する必要があるので渡しているということでいいのだろうか。。。うーん。結果いまいちわかんない。


コメント