Android 用の scala Views ヘルパーを作成したい
この特性とクラスの組み合わせを使用する
class ScalaView(view: View) {
def onClick(action: View => Any) =
view.setOnClickListener(new OnClickListener {
def onClick(view: View) {
action(view)
}
})
}
trait ScalaViewTrait {
implicit def view2ScalaView(view: View) =
new ScalaView(view)
}
そのように onClick() を書くことができます
class MainActivity extends Activity with ScalaViewTrait {
//....
val textView = new TextView(this)
textView.onClick(v => v.asInstanceOf[TextView] setText ("asdas"))
}
私の懸念は、キャストv
を避けたいということですTextView
v
TextView
適用される場合は常にTextView
LinearLayout
適用さLinearLayout
れます。
v
適用されるビューに動的にキャストされる方法はありますか?
Scala を始めたばかりで、これについてあなたの助けが必要です。
アップデート
解決済み 以下の私の回答を参照してください