首页 > 解决方案 > Progam Stopped while the condition running

问题描述

   if (TextUtils.isEmpty(value)){
                        Toast.makeText(this, "Silahkan Isi Jumlah", Toast.LENGTH_SHORT).show()
                        return@setOnClickListener
                    }

the specific code

btnharga.setOnClickListener {
            if (spinner.selectedItem.toString().equals("Ukuran")){
                Toast.makeText(this, "Silahkan Isi Ukuran", Toast.LENGTH_SHORT).show()
            }
            else if (spinner.selectedItem.toString().equals("44")){
                if (spinner2.selectedItem.toString().equals("Jenis Laminasi")){
                    Toast.makeText(this, "Silahkan Isi Laminasi", Toast.LENGTH_SHORT).show()
                }
                else if (spinner2.selectedItem.toString().equals("Glossy")){
                    val total : Int
                    val totall : String
                    val value = editText.getText().toString()
                    val finalValue = Integer.parseInt(value)
                    if (TextUtils.isEmpty(value)){
                        Toast.makeText(this, "Silahkan Isi Jumlah", Toast.LENGTH_SHORT).show()
                        return@setOnClickListener
                    }
                    else if (finalValue < 5){
                        total = finalValue * 3500
                        totall = total.toString()
                        editText2.setText(totall)
                        spinner.isEnabled = false
                        spinner2.isEnabled = false
                        editText.isEnabled = false
                        editText2.isEnabled = false
                    }

why my application force closed when this program is run ??

The erorr Log

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)

标签: javaandroidkotlin

解决方案


发生此问题是因为您尝试解析无法解析为整数的字符串(空字符串)。

Integer.parseInt命令移动到下方检查文本是否为空

并记住在从文本中解析数字时捕获 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
}

推荐阅读