私はAndroid Binding LibraryをKotlinと連携させるのに苦労しています。私が達成したいのは、PresenterクラスにonClickイベントを送出することです。私がやったことだった。AndroidバインディングライブラリとKotlinを使用してビューからonClickイベントをバインドする方法は?
- モジュールの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が非ヌルとして指定されたパラメータがnull:メソッドORG。 jetbrains.kotlin.annotation.RoundEnvironmentWrapper.getElementsAnnotatedWith、パラメータa
ご存知ですか?
build.gradleファイルを貼り付けます。 –