実現したいこと
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 コメント