android - 应用程序意外关闭 - Kotlin
问题描述
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()
}
}
}
我正在尝试创建一个获取两个值并在它们之间选择一个随机整数的应用程序。我不知道我做错了什么,我真的希望有人能帮助我。提前致谢。
解决方案
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()
推荐阅读
- scala - Spark Rdd - 使用带有多个列值的 sortBy
- android - 包 com.reactnativenavigation 不存在
- javascript - 如果我通过 Ajax 调用向 Servlet 发送数据,Javascript UTF-8 编码不起作用
- vb.net - 更新到 VS 2019 后导入错误 BC40056
- typescript - 打字稿:从自定义类型进行映射?
- linux - JAVA_HOME 和 JRE_HOME 环境变量均未定义
- javascript - 即使用户注销也保持计时器运行
- email - 如何在声明式詹金斯管道中编写提交脚本
- c# - Swashbuckle SchemaFilter 用于 api 操作参数
- java - 如何将多个客户端的应用程序与 RESTful Web 服务同步?