kotlin应用程序在从一个活动转到另一个活动时崩溃



我有3个活动当我启动我的应用程序时,我可以进行1个活动到第二个,但我不能进行第三个,这会导致崩溃

这是我第三次(最后一次(的代码

class thirdActivity3 : AppCompatActivity() {
private lateinit var textView: TextView
private lateinit var textView2: TextView

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

textView = findViewById(R.id.textView)
textView2 = findViewById(R.id.textView2)
val extras = intent.extras
if(extras != null){
textView.text = extras.getString("NAME") //getString("NAME","")
textView2.text = extras.getInt("AGE").toString() //getInt("AGE",0).toString()


}
}
}

这是我的第二次活动


class secondActivity2 : AppCompatActivity() {
private lateinit var inputTextAge:EditText
private lateinit var finishButton: Button
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_second2)
inputTextAge=findViewById(R.id.inputTextAge)
finishButton=findViewById(R.id.finishButton)

val extras = intent.extras
var name = ""
if (extras != null){
name=extras.getString("PERSON_NAME","")

}

finishButton.setOnClickListener {
val age = finishButton.text.toString().toInt()
val intent = Intent(this,thirdActivity3::class.java)
intent.putExtra("NAME",name)
intent.putExtra("AGE",age)

startActivity(intent)

}
}
}

我正在尝试制作学习向导,但我的代码有一些问题。我在kotling有3个活动,但当我从第二个活动到第三个活动时,它停止了,但它在我从第一个到第二个时起作用

2020-11-27 18:50:41.472 19343-19343/com.example.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.myapplication, PID: 19343
java.lang.NumberFormatException: For input string: "Finish"
at java.lang.Integer.parseInt(Integer.java:615)
at java.lang.Integer.parseInt(Integer.java:650)
at com.example.myapplication.secondActivity2$onCreate$1.onClick(secondActivity2.kt:33)
at android.view.View.performClick(View.java:7125)
at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:992)
at android.view.View.performClickInternal(View.java:7102)
at android.view.View.access$3500(View.java:801)
at android.view.View$PerformClick.run(View.java:27336)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)


这是来自logcat

查看错误消息,您的问题似乎是这一行:

val age = finishButton.text.toString().toInt()

错误是说您正试图解析字符串";完成";作为一个数字。从这句话来看,你这么做是有道理的。您有一个名为";完成";。您从按钮中获得text,然后对该文本调用toInt(),就会出现此错误。

你希望这条线能做什么?为什么您希望查询按钮的文本以返回一个表示年龄的整数?

最新更新