Java 程序在条件运行时停止
特定代码Java 程序在条件运行时停止,java,android,kotlin,Java,Android,Kotlin,特定代码 if (TextUtils.isEmpty(value)){ Toast.makeText(this, "Silahkan Isi Jumlah", Toast.LENGTH_SHORT).show() return@setOnClickListener } 将空字符串解析为整数,这就是它抛出异常的原因 以下是正确的: E/AndroidRun
if (TextUtils.isEmpty(value)){
Toast.makeText(this, "Silahkan Isi Jumlah", Toast.LENGTH_SHORT).show()
return@setOnClickListener
}
将空字符串解析为整数,这就是它抛出异常的原因 以下是正确的:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: app.inisiator.com, PID: 4717
java.lang.NumberFormatException: For input string: ""
at java.lang.Integer.parseInt(Integer.java:620)
at java.lang.Integer.parseInt(Integer.java:643)
at app.inisiator.com.RequestPinActivity$onCreate$1.onClick(RequestPinActivity.kt:83)
at android.view.View.performClick(View.java:6310)
at android.view.View$PerformClick.run(View.java:24970)
at android.os.Handler.handleCallback(Handler.java:794)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:6662)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
这是一个错误,因为空字符串无法转换为整数:
String a = 50;
int number = Integer.parseInt(a);
在代码中:
String a = "";
int number = Integer.parseInt(a);
更改此行在解析之前检查值是否为空,然后仅在值不为空时进行解析此问题发生的原因是您试图解析一个无法解析为整数的字符串(空字符串) 将
Integer.parseInt
命令移到下面检查文本是否为空
在从文本解析数字时,请记住捕获NumberFormatException
val finalValue = Integer.parseInt(value);
if(TextUtils.isEmpty(value)){
Toast.makeText(这是“Silahkan Isi Jumlah”,Toast.LENGTH\u SHORT.show())
return@setOnClickListener
}
试一试{
val finalValue=Integer.parseInt(值)
如果(最终值<5){
总计=最终价值*3500
total=total.toString()的总数
editText2.setText(总计)
spinner.isEnabled=false
喷丝头2.isEnabled=错误
editText.isEnabled=false
editText2.isEnabled=false
}
}捕获(例如:NumberFormatException){
//添加日志以分析“执行其他操作”的错误
}
您的代码具有以下逻辑:
if (TextUtils.isEmpty(value)){
Toast.makeText(this, "Silahkan Isi Jumlah", Toast.LENGTH_SHORT).show()
return@setOnClickListener
}
try {
val finalValue = Integer.parseInt(value)
if (finalValue < 5){
total = finalValue * 3500
totall = total.toString()
editText2.setText(totall)
spinner.isEnabled = false
spinner2.isEnabled = false
editText.isEnabled = false
editText2.isEnabled = false
}
} catch (ex: NumberFormatException) {
//Add log for parsing error of do something else
}
这导致出现
NumberFormatException
-
if (TextUtils.isEmpty(value)){
...
} else {
val finalValue = Integer.parseInt(value)
if (finalValue < 5){
...
}
}
空字符串或无效字符串无法转换为Int
所以在将字符串解析为int之前使用if条件-
val value = editText.getText().toString()
val finalValue = Integer.parseInt(value) //here value is "" empty
或者使用try/catch with
NumberFormatException
如果此代码在onClickListener中,请在您的帖子中添加更多代码。您应该添加Logcat中的错误日志,以使问题更清晰。有人能告诉我是什么吗return@setOnClickListener是不是???@PembaTamang只是一个返回来跳过下面的命令(仅限setOnClickListener
中的命令)val finalValue=Integer.parseInt(value)
-因为值
是空的。我仍然感到困惑,你能给我一个更具体的例子吗?首先检查字符串值是否为空,然后解析该值,即如果字符串值为空,我们无法将其解析为字符串值问题在于if,if值为空,toast不显示,程序强制关闭ddid你试试我的解决方案?
if (TextUtils.isEmpty(value)){
...
} else {
val finalValue = Integer.parseInt(value)
if (finalValue < 5){
...
}
}
val value = editText.getText().toString()
val finalValue = Integer.parseInt(value) //here value is "" empty
if(!value.isNullOrEmpty()){
//parse here
}