代码之家  ›  专栏  ›  技术社区  ›  Farhana Naaz Ansari Jay Dwivedi

分类器没有伴生对象,因此必须在此处初始化

  •  1
  • Farhana Naaz Ansari Jay Dwivedi  · 技术社区  · 6 年前

    我有一个声明接口的活动,我有一个 ViewModel 类,该类重写了接口并希望从中调用接口的方法 Activity 改变 类,但无法在中调用方法 ViewModel类没有伴生对象,因此必须在此处初始化 . 如何解决这个问题?

    var selection: setSelectionSubRow? = null
        selection=RowSubTShirtViewModel
        selection!!.setNameSelection(false)
    

    以上代码在 活动 谁的名字 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
            }
        }
    }
    
    1 回复  |  直到 6 年前
        1
  •  4
  •   Fred    5 年前

    这条线 selection=RowSubTShirtViewModel 将视图模型作为命名对象引用,这意味着您应该编写而不是类对象:

    object RowSubTShirtViewModel {
       //...
    }
    

    selection=RowSubTShirtViewModel(/*parameters here*/)