以编程方式更改可绘制的颜色

我试图通过代码更改白色标记图像上的颜色。 我读过下面的代码应该改变颜色,但我的标记保持白色。 Drawable.setColorFilter( 0xffff0000, Mode.MULTIPLY ) 我错过了什么? 有没有其他的方式来改变位于我res文件夹中的drawables上的颜色?

在比较中无视Triple的组件

我试图比较Triple的同时无视Triple的某些价值。 我希望忽略的价值由_表示。 请注意,下面的代码是出于示例目的,并不编译,因为_是Unresolved reference 。 val coordinates = Triple(3, 2, 5) when (coordinates) { Triple(0, 0, 0) -> println(“Origin”) Triple(_, 0, 0)-> println(“On the x-axis.”) Triple(0, _, 0)-> println(“On the y-axis.”) Triple(0, 0, _)-> println(“On the z-axis.”) else-> println(“Somewhere in space”) } 我知道你可以使用_ 解构时,如果你想忽略一个值,但似乎并没有帮助我解决上述问题: val (x4, y4, _) = coordinates println(x4) println(y4) 任何想法我可以如何实现这一目标? 谢谢!

如何解决Gradle的DexArchiveBuilderException?

我一直在Android Studio 3.0.1中得到以下的构建问题,我一直无法解决它。 在此期间我无法运行我的应用程序。 com.android.builder.dexing.DexArchiveBuilderException:com.android.builder.dexing.DexArchiveBuilderException: Failed to process /home/Code/StudioProjects/aac/app/build/intermediates/transforms/instantRunSlicer/debug/7 … Gradle控制台说NoSuchElementException发挥作用,但它不会将此exception链接到我的代码中的任何东西。 Caused by: java.util.NoSuchElementException at java.util.LinkedList$ListItr.previous(LinkedList.java:905) 我的build.gradle如下。 apply plugin: ‘com.android.application’ apply plugin: ‘kotlin-android’ apply plugin: ‘kotlin-android-extensions’ android { compileSdkVersion 26 defaultConfig { applicationId “this.app.id.is” // had to change appID for privacy minSdkVersion 21 targetSdkVersion 26 versionCode 1 versionName “1.0” testInstrumentationRunner “android.support.test.runner.AndroidJUnitRunner” } buildTypes { release […]

附近的消息API MessageLisenter不被触发

我正在与NXP i.MX7D合作开发IoT项目。 在这个项目中,我使用Google Nearby API将数据从伴侣应用程序发布到应用程序。 我跟着这个项目附近kotlin 。 我几乎完全按照这个回购。 但在我的情况下,我的两个应用程序正在发布订阅成功。 这里是我的两个活动的代码,第一个是伴侣应用程序的MainActiviy.kt ,第二个是在NXP i.MX7D上运行的活动 class MainActivity : AppCompatActivity(), GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener { /** * The entry point to Google Play Services. */ private var mGoogleApiClient: GoogleApiClient? = null /** * A [MessageListener] for processing messages from nearby devices. */ private var messageListener: MessageListener? = null /** * One […]

在Android Studio中将“java”目录重命名为“kotlin”

我的android项目是100%写在Kotlin,我想重新命名为kotlin java目录是一致的。 我补充说 sourceSets {main.java.srcDirs + =’src / main / kotlin’} 以gradle并重命名目录。 所有的编译和工作正常。 唯一的问题是,当我在项目选项卡中,在“Android”视图目录仍然名为“java”(如果我切换到项目视图的下拉列表中,我确实看到“kotlin”tho)。 我错过了什么?

Kotlin:Gradle增量编译

在M9公告中,有人表示现在支持增量编译。 这是否也适用于Gradle,尤其是Android? 如果是,如何启用它?

从资源字符串数组创建ArrayList

我已经声明了ArrayList, var otherSeriesList = ArrayList() 并试图从以下资源获取数据, otherSeriesList = ArrayList(Arrays.asList(resources.getStringArray(R.array.get_other_series))) 但是我得到错误。 请参阅图像 – 我应该如何从资源字符串数组创建ArrayList?

Kotlin Map非空值

假设我有一张地图将一张纸牌的字母翻译成一个整数 val rank = mapOf(“J” to 11, “Q” to 12, “K” to 13, “A” to 14) 在使用地图时,即使Map和Pair是不可变的,我总是必须做一个空的安全检查: val difference = rank[“Q”]!! – rank[“K”]!! 我猜这是来自genericstypes有没有? 超types。 为什么不能在编译时解决Map和Pair是不可变的问题?

添加int和int? 在Kotlin

我遇到了一个问题,看起来很简单,每个人都应该在某个地方碰到这个问题,但却找不到解决办法。 从REPL复制: var a : Int = 1 var c : Int? = 3 a + if (c != null) {c} else {0} ERROR: None of the following functions can be called with supplied argument (followed by the various implementations of kotlin.int.plus()) 所以我想要做的是添加一个Int和一个Int? 我想结果是一个Int。 很简单。 我当然知道!! 运算符,但是我希望尽可能避免使用它,因为它不是变更安全的。 a + if (c != null) {c!!} else […]

Gradle错误升级到Android Studio 3.0 Beta 1

注意:这似乎是Android插件的问题。 查看相关问题的评论。 构建项目时出现以下gradle错误: Gradle sync failed: Cause: java.lang.NullPointerException at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:98) at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77) at sun.nio.fs.WindowsPath.parse(WindowsPath.java:94) at sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:255) at java.nio.file.Paths.get(Paths.java:84) at com.android.build.gradle.internal.scope.BuildOutput.getOutputPath(BuildOutput.java:222) at com.android.build.gradle.internal.scope.BuildOutputs.lambda$load$2(BuildOutputs.java:243) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1376) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) … 我还会注意到,我不得不手动设置jdk位置,因为如果我使用捆绑的,那么gradle守护进程将不会启动,抱怨没有处于预期的上下文环境中(而是获取绑定的上下文,而不是获取外部上下文)。 这个配置在金丝雀9上工作(与捆绑的jdk)。