Far*_*ana 19 android interface kotlin
我有一个活动,其中声明了一个接口,并且我有一个ViewModel已覆盖接口的类,并且想要调用接口的方法Activity以在ViewModel类中进行更改,但无法调用方法,Activity说ViewModel 类没有伴随对象,因此必须在这里初始化。如何解决这个问题?
var selection: setSelectionSubRow? = null
selection=RowSubTShirtViewModel
selection!!.setNameSelection(false)
Run Code Online (Sandbox Code Playgroud)
上面的代码在Activity其名称中TShirtActivity。
下面的代码来自RowViewModel类
class RowSubTShirtViewModel(private val subTShirtAdapter: SubTShirtAdapter, val context: TShirtActivity,
val tShirtBean: CommonItemBean, private val parentPosition: Int, private val position: Int) : BaseObservable() ,TShirtActivity.setSelectionSubRow{
fun getImageDrawable(): Drawable {
return if (tShirtBean.isSelected)
ContextCompat.getDrawable(context, R.drawable.green_border_circle)!!
else
ContextCompat.getDrawable(context, R.drawable.border_circle)!!
}
override fun setNameSelection(selection: Boolean) {
if (parentPosition == 6) {
if (position == 1) {
tShirtBean.isSelected = false
}
}
}
Run Code Online (Sandbox Code Playgroud)
这一行selection=RowSubTShirtViewModel引用视图模型,就好像它是一个命名对象,这意味着你应该编写而不是类对象:
object RowSubTShirtViewModel {
//...
}
Run Code Online (Sandbox Code Playgroud)
但是,由于情况并非如此,kotlin 告诉您不能像那样引用它并且必须对其进行初始化。构造函数有很多参数让我猜测它们是什么,但基本上你必须传递它们:
selection=RowSubTShirtViewModel(/*parameters here*/)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41479 次 |
| 最近记录: |