Tag: 数据绑定

Android:尝试使用Databinding时,Kotlin执行失败

我想绑定视图使用新的android数据绑定库 。 我试着运行应用程序,并得到以下错误: 错误:执行任务':app:kaptDebugKotlin'失败。 内部编译器错误。 查看日志了解更多详情 以下是我的MainActivity.kt : import android.databinding.DataBindingUtil import android.support.v7.app.AppCompatActivity import android.os.Bundle import app.android.androidtexteditor.databinding.ActivityMainBinding import app.android.androidtexteditor.models.TextEditor class MainActivity : AppCompatActivity() { lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = DataBindingUtil.setContentView(this, R.layout.activity_main) var textEditor = TextEditor("content") binding.textEditor = textEditor binding.executePendingBindings() } } 以下是我的TextEditor.kt : class TextEditor(var content: String?) 以下是我的activity_main.xml : […]

类型推断失败:没有足够的信息来推断参数请明确指定

我正在尝试在Kotlin上写一个Vaadin应用程序。 对于数据绑定,Vaadin 8现在提供了类型安全数据绑定的可能性。 在科特林,我会期待这样的工作: class LoginModel { var username: String = "" var password: String = "" } class LoginView : FormLayout() { val name = TextField("name") val password = TextField("password") val loginButton = Button("login") init { val binder = Binder<LoginModel>() binder.forField(name).bind( { it.username }, { bean, value -> bean.username = value }) //… } […]

如何与Kapt3一起使用lombok

当我尝试使用Kapt3运行Java和Kotlin android应用程序时: apply plugin: 'kotlin-kapt' javac编译失败,无数 error: cannot find symbol 为生成的方法。 这可能是由于kapt无法生成存根导致的: 'kapt.generateStubs' is not used by the 'kotlin-kapt' plugin 所有前面提到的强迫我使用旧的kapt我可以使用: compileOnly "org.projectlombok:lombok:$lombokVer" annotationProcessor "org.projectlombok:lombok:$lombokVer" kapt "org.projectlombok:lombok:$lombokVer" kapt { generateStubs = true } 然而这在测试编译期间导致失败,因为我也使用数据绑定库: 出了什么问题:执行任务失败:app:compileXDebugUnitTestJavaWithJavac'。 java.lang.RuntimeException:无法解析数据绑定编译器选项。 参数:kapt.annotations:… \ app \ build \ tmp \ kapt \ xDebugUnitTest \ wrappers \ annotations.bscplayDebugUnitTest.txt kapt.kotlin.generated:… \ app \ […]

android-kotlin错误:未解决的引用databinding&ActivityMainBinding

我正在使用Android Studio 3.0 Canary 6版本。 我在我的类中启用了dataBinding,代码不显示任何错误。 但是,当我构建APK时,构建失败并显示以下错误: Error:(8, 37) Unresolved reference: databinding Error:(22, 26) Unresolved reference: ActivityMainBinding Error:(38, 50) Unresolved reference: ActivityMainBinding Error:(43, 52) Unresolved reference: ActivityMainBinding Error:(46, 52) Unresolved reference: ActivityMainBinding Error:(49, 52) Unresolved reference: ActivityMainBinding Error:(52, 52) Unresolved reference: ActivityMainBinding Error:(55, 52) Unresolved reference: ActivityMainBinding Error:(58, 52) Unresolved reference: ActivityMainBinding Error:(61, 52) Unresolved […]

Android Studio 3.0数据绑定参考代码不由android studio生成

我遇到了Android Studio 3.0以及kotlin和数据绑定的问题。 我不知道为什么,但选项设置 – >编辑 – >数据绑定 – >由Android工作室生成的参考代码不工作,因为它应该是。 我已经尝试了不同的3.0版本(加那利3,加那利5,加那利6)与不同的kotlin(1.1.2-3,1.1.3,1.1.3-2)和数据绑定编译器版本。 为了确保我已经创建了一个干净的项目,并且出现了同样的问题。 我敢肯定,问题在于kotlin和数据绑定的结合,因为在同一个项目中,java类中的数据绑定工作得很好,数据绑定生成的文件每次更改.xml文件都会更新。 我不打算在这里粘贴我的每个gradle内容文件,因为我已经尝试了很多kotlin和数据绑定的组合版本。 下面是其中之一。 apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-kapt' android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { applicationId "com.dawidj.myapplication" minSdkVersion 21 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } […]

如何使用Android绑定库和Kotlin从视图绑定onClick事件?

我努力使Android绑定库与Kotlin一起工作。 我想要实现的是向我的Presenter类派发一个onClick事件。 我所做的是: 在模块的gradle文件上启用数据绑定:dataBinding 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()}" […]

Kotlin在Android Studio 3.0 Canary 2中使用Android DataBinding

我的项目有2个模块,它们是app和apphelper作为一个库。 我一直在尝试使用android数据绑定与它kotlin,但我无法弄清楚为什么当我建立项目时,它不断显示我这些错误: 失败:生成失败,出现异常。 * What went wrong: A problem occurred configuring project ':app'. > Could not resolve all dependencies for configuration ':app:stagingRuntimeClasspath'. > Unable to find a matching configuration in project :apphelper: – Configuration 'debugApiElements': – Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'AndroidTypeAttr{name=Aar}' and found compatible value 'AndroidTypeAttr{name=Aar}'. – Required com.android.build.gradle.internal.dependency.BuildTypeAttr 'BuildTypeAttr{name=staging}' and found incompatible value 'BuildTypeAttr{name=debug}'. – Found […]

安装员不要求Kotlin POJO

我写了一个简单的POJO(或POKO),并希望将其用于在Kotlin编写的Android应用程序内的数据绑定。 我的问题,setter中的代码不被调用。 我希望在控制台中看到Set value to <> 。 任何想法为什么这不发生? 这是我在try.kotlinlang.org发布的代码: fun main(args: Array<String>) { var myData = MyData() println(myData.helloWorldText) println(myData.helloWorldText) println(myData.helloWorldText) println(myData.helloWorldText) } class MyData { private val values = listOf<String>("Oh…", "Oh captain…", "Oh captain, my …", "Oh captain, my captain…") private var i = -1 var helloWorldText: String = "" get() = values[++i % values.size] […]

Android Studio 2.3.2和Kotlin 1.1.2-4 +数据绑定

在尝试使用Kotlin 1.1.2-4和数据绑定时,我在Android Studio 2.3.2中遇到了问题。 这是我的gradle文件: buildscript { ext.kotlin_version = '1.1.2-4' repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } allprojects { repositories { jcenter() } } task clean(type: Delete) { delete rootProject.buildDir } apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' android { compileSdkVersion 25 buildToolsVersion "25.0.3" defaultConfig […]

Kotlin stdlib和Databinding

是否有可能在xml中使用Kotlin stdlib中的方法? 例如这个代码 <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="16dp" android:textColor="#333333" android:text="@{viewModel.note}" android:visibility="@{viewModel.note.isNotEmpty ? View.VISIBLE : View.GONE}"/> 产生编译错误 执行任务失败:app:compileDevDebugJavaWithJavac'。 java.lang.RuntimeException:发现数据绑定错误。 **** / data binding error **** msg:无法在类java.lang.String文件中找到方法isNotEmpty():D:\ Projects \ PushTracker -Android \ app \ src \ main \ res \ layout \ fragment_appointment_simple_details。 xml loc:104:44 – 104:70 **** \数据绑定错误**** 很明显,数据绑定试图找到方法isNotEmpty()在Java的字符串,但我可以强制数据绑定编译器使用kotlin的字符串?