Как решить «Не удается найти установщик для атрибута» при использовании привязки данных в Android Studio - PullRequest
1 голос
/ 19 апреля 2019

Я пытаюсь заставить привязку данных работать в Android Studio с пользовательскими адаптерами Binding.

Я определил следующий BindingAdapter для установки изображения:

@BindingAdapter("app:iconImage")
@JvmStatic fun setIconImage(view: ImageView, cool: Boolean){
        view.setImageDrawable(determineImage(cool, view.context))

}

Однако при создании проекта возникает следующая ошибка:

****/ data binding error ****msg:Cannot find the setter for attribute 
'app:iconImage' with parameter type androidx.databinding.ObservableBoolean 
on android.widget.ImageView.

Этомой xml для изображения:

    <ImageView
            android:layout_height="100dp"
            android:layout_width="100dp"
            tools:srcCompat="@drawable/favorite"
            app:iconImage="@{myModel.cool}"
            app:imageRotation="@{myModel.stars}"
            android:id="@+id/imageView" app:layout_constraintEnd_toEndOf="parent" android:layout_marginEnd="8dp"
            android:layout_marginBottom="8dp"
            app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp" app:layout_constraintTop_toBottomOf="@+id/ratingBar"/>

Я уже пытался изменить тип параметра 'cool' на ObservableBoolean, но безрезультатно.

1 Ответ

0 голосов
/ 19 апреля 2019

Параметр cool, который вы передаете из вашей ViewModel, имеет тип androidx.databinding.ObservableBoolean, это должно быть Boolean или LiveData<Boolean>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...