你好,我试图创建一个简单的数字猜测应用程序,如果用户猜测的数字与随机数生成器匹配,textView应该输出“你已经正确地猜到了数字”或没有,但每当我按下按钮,程序崩溃。请帮助
每当我按下按钮时,程序就会崩溃。用户应在userAns变量中输入他们的数字,如果答案正确。应执行answerCorrect变量并显示文本,如果用户猜测的数字是错误的。应执行answerWrong变量。我是初学者,所以请帮助
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
}
}
}
字符串
2条答案
按热度按时间g6ll5ycj1#
没有堆栈跟踪,我想我可以猜到崩溃是从哪里发生的。
您的buttonPressed方法中有以下行:
字符串
在这里,您正在访问一个EditText视图,并试图将其转换为字符串,然后转换为整数。
我认为你的意思是从你的EditText中获取值,然后将其转换为a。
你可以通过这样做来实现:
型
这是假设您正在使用正确的id为编辑文本。
nukf8bse2#
问题在于:
字符串
通过findViewById获取
EditText
,您应该从中获取文本,然后将其存储在变量中型
注意事项:每当应用崩溃时,Android Studio都会生成一个堆栈跟踪,您可以在LogCat窗口中看到。它通常包含崩溃的原因以及崩溃发生的确切行号。您应该在任何崩溃发生时查看它,以调试问题。