这是我在kotlin中的第一个代码
activity_main
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="tenge.millionaire.MainActivity">
<EditText
android:id="@+id/monthlysalary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:ems="10"
android:hint="Enter monthly salary"
android:inputType="textPersonName"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.502"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/perday"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginTop="56dp"
android:text="TextView"
android:textSize="18sp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/monthlysalary" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="296dp"
android:text="Show me :)"
android:onClick="CaculateAge"
android:background="@color/colorPrimary"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/perday" />
</android.support.constraint.ConstraintLayout>
和 mainActivity 是
package tenge.millionaire
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
perday.setText("");
}
public fun CaculateAge(view: View){
val salary: String = perday.text.toString();
val perday1 = salary.toInt()/30;
perday.setText("Per day you earn $perday1")
}
}
不确定该功能有什么问题,还是数据类型是什么?错误是
致命例外:主要过程:tenge.万人,pid:687java.lang.illegalstateException:无法执行方法Android:OnClickat android.support.v7.app.appcompatviewinflater $ neclaredonClicklistener.onclick(appcompatviewinflater.java:293)at android.view.view.performClick(view.java:6213)at android.widget.textview.performClick(textview.java:11074)at android.view.view $ persionclick.run(view.java:23645)在Android.os.handler.handlecallback(Handler.java:751)在Android.os.handler.dispatchMessage(Handler.java:95)at android.os.looper.loop(looper.java:154)at android.app.activitythread.main(activityThread.java:6692)在java.lang.reflect.method.invoke(本机方法)上在com.android.internal.os.os.zygoteinit $ methodandargscaller.run(zygoteinit.java:1468)在com.android.internal.os.os.zygoteinit.main(zygoteinit.java:1358)引起:java.lang.reflect.invocationTargetException在java.lang.reflect.method.invoke(本机方法)上at android.support.v7.app.appcompatviewinflater $ neclaredonClicklistener.onclick(appcompatviewinflater.java:288)at android.view.view.performClick(view.java:6213)at android.widget.textview.performClick(textview.java:11074)at android.view.view $ persionclick.run(view.java:23645)在Android.os.handler.handlecallback(Handler.java:751)在Android.os.handler.dispatchMessage(Handler.java:95)at android.os.looper.loop(looper.java:154)at android.app.activitythread.main(activityThread.java:6692)在java.lang.reflect.method.invoke(本机方法)上在com.android.internal.os.os.zygoteinit $ methodandargscaller.run(zygoteinit.java:1468)在com.android.internal.os.os.zygoteinit.main(zygoteinit.java:1358)引起:java.lang.numberformatexception:对于输入字符串:"在java.lang.integer.parseint(integer.java:533)在java.lang.integer.parseint(integer.java:556)在tenge.millionaire.mainactivity.Caculateage(MainActivity.KT:18)在java.lang.reflect.method.invoke(本机方法)上at android.support.v7.app.appcompatviewinflater $ neclaredonClicklistener.onclick(appcompatviewinflater.java:288)at android.view.view.performClick(view.java:6213)at android.widget.textview.performClick(textview.java:11074)at android.view.view $ persionclick.run(view.java:23645)在Android.os.handler.handlecallback(Handler.java:751)在Android.os.handler.dispatchMessage(Handler.java:95)at android.os.looper.loop(looper.java:154)at android.app.activitythread.main(activityThread.java:6692)在java.lang.reflect.method.invoke(本机方法)上在com.android.internal.os.os.zygoteinit $ methodandargscaller.run(zygoteinit.java:1468)在com.android.internal.os.os.zygoteinit.main(zygoteinit.java:1358)
perday.setText("");
然后,您正在尝试采用此值并将其放入这里:
val salary: String = perday.text.toString();
val perday1 = salary.toInt()/30;
薪水现在只是一个空字符串,那里崩溃了。
Caused by: java.lang.NumberFormatException: For input string: ""
您实际上需要每天包含一个数字。现在您说的是" .toint(),这会导致numberFormateXception