Я следую старому курсу Kotlin, и, поскольку их курс довольно старый, я не думаю, что они больше отвечают на вопросы и ответы.
Моя проблема в том, что приложение работает совершенно нормально, нокак только я реализую один метод цвета фона, он останавливается.
Вот ошибка роковая , которую я получаю:
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)
где я конвертирую цвета из двойных в 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
, происходит сбой, и если я удаляю метод, он возвращается к идеальной работе.