Adapterを作成する際にcontextとしてthisをMainActivityから渡しているのだけれどそもそもContextって何かわからないので調べた。
参考にしたサイト
Androidビギナーズ(第1回)Contextについて - メグリ株式会社
Java経験者だけどAndroid初心者の私が実装をしていて、あれ??
追記。ここもわかりやすい
adapterについて - Qiita
##Adapterとはandroid studioでlistViewを使う際にはadapterを使わなければなりません。adapterのはdeveloperではつまり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クラスの情報を連携する必要があるので渡しているということでいいのだろうか。。。うーん。結果いまいちわかんない。
コメント