您好,我正在尝试创建一个简单的数字猜测器应用程序,如果用户猜测的数字与随机数生成器匹配,则 textView 应该输出“您已经正确猜对了数字”,但每当我按下按钮时,程序就会崩溃。请帮忙
每当我按下按钮时,程序就会崩溃。用户应该在 userAns 变量中输入他们的号码,以及答案是否正确。如果用户猜测的数字是错误的,则应执行answerCorrect 变量并显示文本。答案错误的变量应该被执行。我是初学者所以请帮忙
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//Calling button method
val button = findViewById<Button>(R.id.guessBtn)
//Set on click listener for the button
button.setOnClickListener {
buttonPressed()
}
}
//Creating button for button pressed
private fun buttonPressed() {
//Method to find view from activity_main
val result = findViewById<TextView>(R.id.result)
val userAns = findViewById<EditText>(R.id.answer).toString().toInt()
//This variable will display the answer
val answerCorrect = "Congrats, you have correctly guessed the number"
val answerWrong = "Sorry,you have guessed the wrong number"
//Making random numbers from 1 to 10
var randomValues = Random.nextInt(1, 10)
//Adding a condition to check if user answer matches the random answer
if(userAns == randomValues){
result.text = answerCorrect
}
else{
result.text = answerWrong
}
}
}
如果没有堆栈跟踪,我想我可以猜测崩溃是从哪里发生的。
您的 buttonPressed 方法中有以下行:
val userAns = findViewById<EditText>(R.id.answer).toString().toInt()
在这里,您正在访问一个 EditText 视图,并尝试将其转换为字符串,然后转换为整数。
我认为你的意思是从 EditText 中获取值,然后将其转换为整数。
您可以通过这样做来实现这一点:
val userAnsEditText = findViewById<EditText>(R.id.answer)
val userAnsText = userAnsEditText.text.toString
val userAnsInt = userAnsText.toInt()
这是假设您为 EditText 使用正确的 id。