使用Kotlin for Android进行数据绑定问题

我正在尝试使用Kotlin为我的Android项目启用数据绑定。 我有Kotlin插件启用,但我不能启用数据绑定我不断收到以下错误 Error:(66, 0) Could not find method kapt() for arguments [com.android.databinding:compiler:2.0.0-beta6] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler 我有我的gradle文件中的数据绑定以下依赖关系 dependencies { … kapt ‘com.android.databinding:compiler:2.0.0-beta6’ } kapt { generateStubs = true }

智能转换为“types”是不可能的,因为“variables”是一个可以改变的可变属性

Kotlin新手问道: “为什么下面的代码不能编译?” : var left: Node? = null fun show() { if (left != null) { queue.add(left) // ERROR HERE } } 智能投到“节点”是不可能的,因为“左”是一个可变的属性,可能已经改变了这个时间 我得到left是可变的variables,但我显式检查left != null和left是Nodetypes,为什么不能聪明地转换为该types? 我怎样才能解决这个优雅? 🙂

等于在Kotlin超载

我正在尝试为我的类重载compareTo和equals运算符。 比较运算符没有问题。 它既可以作为成员也可以作为扩展函数使用。 等号运算符必须是成员,重写等于fun。 class MyClass { companion object { private val NUMBER: Int = 5 operator fun compareTo(value: Int) = NUMBER – value override operator fun equals(other: Any?) = when (other) { is Int -> NUMBER == other else -> throw Exception(“”) } } } fun test() { if (MyClass < 10) { //ok […]

如何在Android上显示“是/否”对话框?

是的,我知道有AlertDialog.Builder,但是我很震惊地知道在Android中显示对话有多困难(至少不是程序员友好的)。 我曾经是一个.NET开发人员,我想知道是否有任何与Android相当的以下内容? if (MessageBox.Show(“Sure?”, “”, MessageBoxButtons.YesNo) == DialogResult.Yes){ // Do something… }

如何迭代SparseArray?

有没有一种方法来迭代Java SparseArray(Android版)? 我用sparsearray很容易通过索引获取值。 我找不到一个。

SyncAdapter中的Singleton Room数据库触发LiveData

我努力在我的SyncAdapter使用Room作为单例。 我使用Kotlin。 我的房间课 @Database(entities = [(Product::class)], version = 1, exportSchema = false) abstract class AppDatabase : RoomDatabase() { abstract fun productDao(): ProductDao companion object { @Volatile private var INSTANCE: AppDatabase? = null fun getInstance(context: Context) : AppDatabase = INSTANCE ?: synchronized(this) { INSTANCE ?: buildDatabase(context.applicationContext) .also {INSTANCE = it} } private fun buildDatabase(context: Context) = […]

为什么这种随机生成图表的方式不公平?

我的目标是生成一个有向图,包含n个顶点,每个顶点都有一个边缘出来,并有一个边缘进来。我认为这样做的一种方法是将所有的顶点放在一个底池中,顶点轮流洗牌和拉出条目 – 例如,如果顶点1拉出顶点3,那么意味着将有一个从1到3的边缘。如果一个顶点从jar子中拉出来,它就把它放回去重新洗牌。 如果最后一个顶点发现底池只包含它自己,那么我们需要重新开始。 这是我的Kotlin代码: fun generateGraph(n: Int): Map { val vertices : List = (1..n).toList() while (true) { val pot = vertices.toMutableList() val result = mutableMapOf() for (vertex in 1 until n) { do { java.util.Collections.shuffle(pot) } while (pot[0] == vertex) result.put(vertex, pot.removeAt(0)) } if (pot[0] != n) { result.put(n, pot.removeAt(0)) return result } […]

Kotlin中twitter4j.StreamListner IllegalAccessError的原因是什么?

在Kotlin中实现twitter4j.StatusListner时,出现以下IllegalAccessError和相关的堆栈跟踪: Exception in thread “main” java.lang.IllegalAccessError: tried to access class twitter4j.StreamListener from class rxkotlin.rxextensions.TwitterExampleKt$observe$1 at rxkotlin.rxextensions.TwitterExampleKt$observe$1.subscribe(TwitterExample.kt:50) at io.reactivex.internal.operators.observable.ObservableCreate.subscribeActual(ObservableCreate.java:40) at io.reactivex.Observable.subscribe(Observable.java:10700) at io.reactivex.Observable.subscribe(Observable.java:10686) at io.reactivex.Observable.subscribe(Observable.java:10615) at rxkotlin.rxextensions.TwitterExampleKt.main(TwitterExample.kt:8) 由以下代码产生: val twitterStream = TwitterStreamFactory().instance // See https://stackoverflow.com/questions/37672023/how-to-create-an-instance-of-anonymous-interface-in-kotlin/37672334 twitterStream.addListener(object : StatusListener { override fun onStatus(status: Status?) { if (emitter.isDisposed) { twitterStream.shutdown() } else { emitter.onNext(status) } } override fun […]

Java ArrayList到Kotlin数组

有没有简单的方法将Java ArrayList转换为Kotlin数组? 以下代码: fun test(): Array { val elems = ArrayList() return elems.toArray() } 给出错误: main.kt:2:15: error: unresolved reference: ArrayList val elems = ArrayList() ^ 我正在解析一些JSON,不知道有多少元素,但是一旦我读了它们,我不需要以任何方式修改数据,所以我想我会去Kotlin数组作为数据types。

genericstypes参数不在范围内

我正在一个小演示Android应用程序,我在一些java类和接口与kotlin混合。 我想扩展名为MvpViewStateActivitygenericstypes参数的java类: abstract class MvpViewStateActivity<V extends MvpView, P extends MvpPresenter > { … } MvpView只是一个空的java接口: interface MvpView { … } 而MvpPresenter是这样一个java接口: interface MvpPresenter { … } 和SearchViewActivity (Java): class SearchActivity extends MvpViewStateActivity implements SearchView { … } 所以现在我创建一个kotlin接口SearchView : interface SearchView : MvpView { fun setItems( items : List ) } Item是pojo数据类。 SearchPresenter也是用kotlin编写的: interface SearchPresenter […]