ボタンのビューをビューバインドを使ってメソッドに受け渡す方法

実現したいこと

Kotlinでボタンのビューを、ビューバインドを使って、メソッドに受け渡しするにはどのようにすればよいでしょうか?

試したこと

findViewByIdを使う方法であれば実装できました。やりたいことは以下です。
ここでは、1つのボタンだけしかmyMethodを呼び出していませんが、
実際は、myMethodは複数のボタンから呼び出される想定で、
myMethod側で呼び出し元のボタンを取得したいと思っています。

Kotlin

1override fun onCreate(savedInstanceState: Bundle?) {2 super.onCreate(savedInstanceState)3 binding = ActivityMainBinding.inflate(layoutInflater)4 val view = binding.root 5 setContentView(view)6 7 binding.myButton.setOnClickListener {8 myMethod(it)9 }10}11 12fun myMethod(view: View){13 val button: Button = findViewById(view.id)14 println(button.text)15}

ただし、findViewByIdは非推奨らしいので、後継のビューバインドを使って実装したいです。
試しに、以下のように記述してみたところ、

Kotlin

1fun myMethod(view: View){2 val button: Button = binding.view 3 println(button.text)4}

以下のようなエラーとなってしまいました。

Unresolved reference: view

ビューのimport文は書いています。

import android.view.View

また、以下のようにすれば、ボタンは取得できますが、これでは、メソッドで受け渡しとなりません。

val button: Button = binding.myButton

そもそもビューバインドでは実装不可能なのでしょうか?

補足情報(FW/ツールのバージョンなど)

Android Studio Flamingo | 2022.2.1

コメントを投稿

0 コメント