実現したいこと
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
回答1件
あなたの回答
tips
プレビュー