質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

1回答

461閲覧

各ページにある共通のメニューをまとめて設定する方法

退会済みユーザー

退会済みユーザー

総合スコア0

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

0クリップ

投稿2022/11/27 15:16

編集2022/11/27 23:01

前提

フッターメニューの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で括ったりもしましたが、エラーは変わりません。

どのような書き方をすれば、
一元管理できるようになるのか教えて下さい。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2022/11/27 20:23

ソースコードを貼ってくれないとよく分かりませんが、findViewById をどこで使うかの問題かと。
退会済みユーザー

退会済みユーザー

2022/11/27 22:56

「どこで」の意味がよくわかりませんが、各ページの下に同一のXMLを利用したフッターメニューを作りたいです。 そのフッターメニューに同一の機能を持たせるためにまとめて指定したいです。 各ページに毎度、val btn: ImageButton = findViewById(R.id.btn)を入れて、ボタンにbtn.setOnClickListener {//やりたいことをいれる}のは保守管理がやっかいになると思い質問しました。
hoshi-takanori

2022/11/27 23:27

findViewById は Activity (または View) のメソッドなので、普通は MainActivity など、Activity のサブクラスで使うことになると思います。というか、Android プログラミングにおける基本的なクラスの使い方を学ばれることをお勧めします。
退会済みユーザー

退会済みユーザー

2022/11/28 00:48

サブクラスを使うということで調べてみます。ありがとうございました。 あと、「Android プログラミングにおける基本的なクラスの使い方」を知りたいから質問したと言うことを覚えておいて欲しいです。「普通」がわかっていて、Android プログラミングの基本をわかっているなら、こんな質問しないと思いますよ。
guest

回答1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/11/27 23:03

よくわからなかったのですが、紹介されたURLにあるとおり、 class footer_menu { private inner class mfoot : View.OnClickListener { override fun onClick(v: View?) { TODO("Not yet implemented") val btn: ImageButton = findViewById(R.id.btn) val btn2: ImageButton = findViewById(R.id.btn2) } } } としてみましたが、findViewByIdのエラーは「Unresolved reference: findViewById」のままで解決しませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問