我有一个Activity,其中声明了一个接口,并且我有一个ViewModel
类,该类具有重写的接口,并且想从Activity
调用接口的方法来对ViewModel
类进行更改但无法调用Activity
中的方法,说 ViewModel类没有伴随对象,因此必须在此处初始化。该如何解决?
var selection: setSelectionSubRow? = null
selection=RowSubTShirtViewModel
selection!!.setNameSelection(false)
以上代码位于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
}
}
}
答案 0 :(得分:2)
此行SELECT sno
FROM
(
SELECT t.*, COUNT(*) OVER (PARTITION BY name) cnt
FROM yourTable t
) t
WHERE cnt > 1;
引用视图模型,就好像它是一个命名对象一样,这意味着您将编写而不是类对象:
selection=RowSubTShirtViewModel
但是,由于并非如此,kotlin告诉您您不能像这样引用它,而必须对其进行初始化。导体作为很多参数让我猜出它们是什么,但是从本质上讲,您必须将它们传递进来:
object RowSubTShirtViewModel {
//...
}
答案 1 :(得分:0)
在我的情况下,我在ApplicationModule
中遇到了dagger2
的错误。
@Provides
@Singleton
internal fun providesxx(xx: xxx): xx {
return xx
}
我只是重命名了论点!