我想为 Android 创建一个 scala Views 助手
使用 trait 和 class 的这种组合
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
if 应用于 a TextView
LinearLayout
if 应用于LinearLayout
等等。
有什么方法v
可以动态转换到应用的任何视图?
刚开始使用 Scala,我需要你的帮助。
更新
解决了请看下面我的回答