gpt4 book ai didi

kotlin - 我的图像背景颜色出现致命的表达错误

转载 作者:行者123 更新时间:2023-12-03 08:44:01 25 4
gpt4 key购买 nike

我正在学习旧的 Kotlin 类(class),由于他们的类(class)已经很老了,我认为他们不再对问答做出回应。

我的问题是该应用程序完全可以正常工作,但是一旦我实现了一种背景颜色方法,它就会停止。

这是我得到的 fatal error :

2019-11-21 11:46:14.035 31147-31147/com.example.smack E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.smack, PID: 31147
java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:876)
at java.util.Scanner.next(Scanner.java:1502)
at java.util.Scanner.nextDouble(Scanner.java:2431)
at com.example.smack.Services.UserDataService.returnAvatarColor(UserDataService.kt:35)
at com.example.smack.Controller.MainActivity$userDataChangeReciever$1.onReceive(MainActivity.kt:72)
at androidx.localbroadcastmanager.content.LocalBroadcastManager.executePendingBroadcasts(LocalBroadcastManager.java:313)
at androidx.localbroadcastmanager.content.LocalBroadcastManager$1.handleMessage(LocalBroadcastManager.java:121)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

主要关注 UserDataService.kt:35)这是我将颜色从 double 转换为 Int 的地方:
fun returnAvatarColor(components: String) : Int {
val strippedColor = components.replace("[", "").replace("]", "").replace(",", "")

var r = 0
var g = 0
var b = 0

val scanner = Scanner(strippedColor)
if (scanner.hasNext()) {
r = (scanner.nextDouble() * 255).toInt()
g = (scanner.nextDouble() * 255).toInt()
b = (scanner.nextDouble() * 255).toInt()
}
return Color.rgb(r,g,b)
}

之后 (MainActivity.kt:72)这是我获取方法以显示它的地方:
userImageNavHeader.setBackgroundColor(UserDataService.returnAvatarColor(UserDataService.avatarColor))

每当我运行该应用程序时它就可以工作,但是一旦我尝试创建一个头像并获取它的 background color它崩溃了,如果我删除该方法,它会恢复正常工作。

最佳答案

我设法通过删除

    val scanner = Scanner(strippedColor)

方法并像这样显示它:
if (Scanner(strippedColor).hasNext()) {
r = (Scanner(strippedColor).nextDouble() * 255).toInt()
g = (Scanner(strippedColor).nextDouble() * 255).toInt()
b = (Scanner(strippedColor).nextDouble() * 255).toInt()
}

关于kotlin - 我的图像背景颜色出现致命的表达错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58970799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com