У классификатора нет сопутствующего объекта, и, следовательно, он должен быть инициализирован здесь - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть 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
        }
    }
}

1 Ответ

0 голосов
/ 26 ноября 2018

Эта строка selection=RowSubTShirtViewModel ссылается на модель представления, как если бы это был именованный объект, то есть вы бы написали вместо объекта класса:

object RowSubTShirtViewModel {
   //...
}

Однако, поскольку это не так, Котлин говоритВы, что вы не можете ссылаться на него, как это, и должны инициализировать его.У кондуктора достаточно много параметров, чтобы я мог угадать, что они из себя представляют, но по сути вам придется передать их в:

selection=RowSubTShirtViewModel(/*parameters here*/)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...