将空的 EditText 转换为整数 Android Studio

Converting Empty EditText to Integer Android Studio

我有一个 EditText,它将从用户那里获取一个数字并将其保存为 sharedPreferences。我有两个按钮用于加载和保存,还有一个 TextView 用于显示保存的数据。一切正常,但如果用户什么都不输入并保存,应用程序就会崩溃。这是 Kotlin 代码,

override fun onClick(p0: View?) {

    val sharedPreferences=getSharedPreferences("key", Context.MODE_PRIVATE)

    when(p0!!.id){


        //saves user data
         R.id.btn_save->{          
            
            val userAge = Integer.parseInt(ageInput.text.toString()) //the problem is here
            
            val editor=sharedPreferences.edit()
            editor.putInt("age",userAge)
            editor.apply()

        }

        //loads or displays user data
        R.id.btn_load->{

            val age=sharedPreferences.getInt("age",0)
            showTv.text="Age: $age"

        }
    }

}

改用toIntOrNull()。它不会在无效输入上抛出异常,而是 returns null。然后您可以使用 Elvis 运算符提供默认值,以便在它为 null 时使用。

val userAge = ageInput.text.toString().toIntOrNull() ?: 0

在使用 Kotlin 时,您应该避免像 Integer 这样的 Java 原始包装器 类。