Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Kotlin Edit Text as Integer

I want to make an app where you have to guess two numbers that eaquals a random number. But my app crash at the start because of java.lang.NumberFormatException: For input string: ""

val intNumber1 = etNumber1.text.toString().toInt() is the line that causes the crash. But I dont know what to do.

Here is my main activity:

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

//Buttons und Text initialisieren
private lateinit var btnCheck: Button
private lateinit var tvRndNumber: TextView
private lateinit var etNumber1: EditText
private lateinit var etNumber2: EditText



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



    //Buttons und Text verknüpfen
    btnCheck = findViewById(R.id.checkButton)
    tvRndNumber = findViewById(R.id.randomNumber)
    etNumber1 = findViewById(R.id.inputNumber1)
    etNumber2 = findViewById(R.id.inputNumber2)



    val intNumber1 = etNumber1.text.toString().toInt()
    val intNumber2 = etNumber2.text.toString().toInt()



    fun getRandomNumber(): Int {
        return Random.nextInt(0,100)
    }



    var intRdnNumber = getRandomNumber()
    tvRndNumber.text = intRdnNumber.toString()



    fun checkNumbers(num1: Int, num2: Int){

        if (num1 + num2 == intRdnNumber) {
            tvRndNumber.text = "Richtig"
        }
        else {
            Toast.makeText(this,"Probier es nochmal", Toast.LENGTH_LONG).show()
        }
    }



    btnCheck.setOnClickListener {
        checkNumbers(intNumber1, intNumber2)
    }

>Solution :

Try like the following

//....
 val intNumber1 = etNumber1.text.toString()
 val intNumber2 = etNumber2.text.toString()

//.....
btnCheck.setOnClickListener {
    if(intNumber1.isNotEmpty && intNumber2.isNotEmpty{
        checkNumbers(intNumber1.toInt(), intNumber2.toInt())
    }else{
        // input filed is empty
        // show message or do nothing
    }
    
}

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading