前提
フッターメニューのXMLを作り、includeで各ページに配置してあります。
これにsetOnClickListenerで指示を出しているのですが、
ページ数が多いため、全ページに同一の設定を埋めるのが大変です。
なにか手軽に指定する方法はないでしょうか?
実現したいこと
- 全ページにフッターメニューを置きたい
- CLASSなどを使って設定を全ページに一括登録したい
各ページに毎度、val btn: ImageButton = findViewById(R.id.btn)を入れて、ボタンにbtn.setOnClickListener {//やりたいことをいれる}のは、今後の保守管理がやっかいになると思い質問しました。
発生している問題・エラーメッセージ
classを使って指示するんだろうなとは思いましたが、
val btn: ImageButton = findViewById(R.id.btn)を入れるとエラーになります。
Unresolved reference: findViewById
Kotlin
1class footer_menu { 2 val btn: ImageButton = findViewById(R.id.btn) 3 val btn2: ImageButton = findViewById(R.id.btn2) 4}
一応、funで括ったりもしましたが、エラーは変わりません。
どのような書き方をすれば、
一元管理できるようになるのか教えて下さい。
よろしくお願いします。
ソースコードを貼ってくれないとよく分かりませんが、findViewById をどこで使うかの問題かと。
「どこで」の意味がよくわかりませんが、各ページの下に同一のXMLを利用したフッターメニューを作りたいです。
そのフッターメニューに同一の機能を持たせるためにまとめて指定したいです。
各ページに毎度、val btn: ImageButton = findViewById(R.id.btn)を入れて、ボタンにbtn.setOnClickListener {//やりたいことをいれる}のは保守管理がやっかいになると思い質問しました。
findViewById は Activity (または View) のメソッドなので、普通は MainActivity など、Activity のサブクラスで使うことになると思います。というか、Android プログラミングにおける基本的なクラスの使い方を学ばれることをお勧めします。
サブクラスを使うということで調べてみます。ありがとうございました。
あと、「Android プログラミングにおける基本的なクラスの使い方」を知りたいから質問したと言うことを覚えておいて欲しいです。「普通」がわかっていて、Android プログラミングの基本をわかっているなら、こんな質問しないと思いますよ。