Я боюсь сделать Android Binding Library для работы с Котлином. То, что я хочу достичь, - отправить событие onClick моему классу Presenter. Что я сделал было:Как связать событие onClick из представления с помощью Android Binding Library и Kotlin?
- Включить привязку данных на Gradle файла модуля:
dataBinding {enabled = true}
- Импорт привязки компилятора:
kapt 'com.android.databinding:compiler:2.0.0-beta6'
- создания заглушек:
kapt {generateStubs = true}
Реализовать метод на MainPresenter.kt:
fun onClickEditProfile() { log("method you hoped to get called was called") mView!!.getContext().snackbar("received event: onClickEditProfile via data binding, this is awesome").show() }
Подготовить планировку:
<layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <data> <variable name="presenter" type="br.com.tyllt.presenter.MainPresenter" /> </data> <com.github.clans.fab.FloatingActionButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="@{() -> presenter.onClickEditProfile()}" android:src="@drawable/ic_edit" app:fab_colorNormal="@color/colorPrimary" app:fab_colorPressed="@color/colorPrimaryDark" app:fab_hideAnimation="@anim/fab_scale_down" app:fab_label="Edit Profile" app:fab_size="mini" /> </layout>
Проблема заключается в том, когда я генерировать APK я получаю followin исключение:
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
java.lang.IllegalArgumentException: Параметр определяется как не-нуль равно нулю: метод орг. jetbrains.kotlin.annotation.RoundEnvironmentWrapper.getElementsAnnotatedWith, параметр a
Идея?
Вставьте файл build.gradle –