Приложение неожиданно закрывается - Kotlin - PullRequest
0 голосов
/ 12 января 2020
package com.example.firstapp

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.EditText
import kotlinx.android.synthetic.main.activity_main.*
import kotlin.random.Random

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)


        val deEditText = findViewById<EditText>(R.id.de) as EditText
        val ateEditText = findViewById<EditText>(R.id.ate) as EditText

        Randomize.setOnClickListener{
            val de = Integer.parseInt(deEditText.text.toString())
            val ate = Integer.parseInt(ateEditText.text.toString())

            RandomDisplay.text = (Random.nextInt(de - ate) + ate).toString()
        }
    }
}

Я пытаюсь создать приложение, которое получает два значения и выбирает случайное целое число между ними. Я не знаю, что я делаю неправильно, и я действительно надеюсь, что кто-то может мне помочь. Заранее спасибо. Here's the error log

1 Ответ

0 голосов
/ 13 января 2020

throw exception when Rantdom.nextInt parameter is negative

val deEditText = findViewById<EditText>(R.id.de) as EditText
val ateEditText = findViewById<EditText>(R.id.ate) as EditText

Random.nextInt(de - ate)

если значение из deEditText минус значение из ateEditText равно нулю или отрицательно, Radom.nextInt выдаст IllegalArgumentException

// minimize the end bound to 1 by adding max()
RandomDisplay.text = (Random.nextInt(max(1, de - ate)) + ate).toString()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...