Как передать параметр в лямбда-вызов в привязке данных - PullRequest
0 голосов
/ 11 февраля 2019

Я просто хочу передать некоторый параметр через привязку данных из моего представления в мое представление модели.

У меня есть настраиваемое представление, в котором я отображаю все данные в представление recycler.

У меня есть представление модели, в котором я могу получить данные с сервера и хочу, чтобы элемент щелкнул в представлении recycler..

Макет

<CustomView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:activationRequestClick="@{(item) -> viewmodel.activateCardLinkedCoupon(item)}"/>

ViewModel

class CardLinkedCouponViewModel : ViewModel() {

    fun activateCardLinkedCoupon(item: SomeItem) {
        Timber.e("Clicked")
    }
}

Мой CustomView

class CustomView @JvmOverloads constructor(
        context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : ConstraintLayout(context, attrs, defStyleAttr) {

    var activationRequestClick: (item: SomeItem) -> Unit = {}

}

Проблема в том, что я получаю следующую ошибку

An exception occurred: android.databinding.tool.util.LoggedErrorException: Found data binding errors.****/ data binding error ****msg:cannot find method activateCardLinkedCoupon(java.lang.Object) in class CustomView

Если метод activateCardLinkedCoupon не имеет параметров, он работает правильно, но я не получаю информацию о выбранном элементе.

Спасибо за вашу помощь

...