如何检查 Number TextEdit 是否为空?

How to check if Number TextEdit is empty?

所以我在尝试在 android 上制作随机数生成器应用程序时遇到了这个问题。基本上你设置最小和最大数量,然后它随机选择最小和最大之间的数字。 但是,如果最小或最大 TextEdit 字段为空,我的问题就会出现,应用程序会崩溃。我想在屏幕上显示“X”。如何检查字段是否为空? 我正在使用 kotlin,这里是我的代码示例。我是初学者所以如果代码有误请不要喷我:)

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


    val rollButton = findViewById<Button>(R.id.rollButton)
    val resultsTextView = findViewById<TextView>(R.id.resultsTextView)
    //val seekBar = findViewById<SeekBar>(R.id.seekBar)
    val min = findViewById<TextView>(R.id.number_min)
    val max = findViewById<TextView>(R.id.number_max)




    rollButton.setOnClickListener {

    if(min.text.toString().toInt()>= 0 && max.text.toString().toInt() <= 1000){
        val rand = Random.nextInt(min.text.toString().toInt(),max.text.toString().toInt()+1)
        resultsTextView.text = rand.toString()
    }
        else if(min.text.toString().isNullOrBlank()){
        resultsTextView.text = "X"


    }
        else{

        resultsTextView.text = "X"
    }

    }




}

}

要检查您的 EditText 是否为空,请使用 isNullOrEmpty()。这将检查您的字段是否为空或为空,如方法名称所示。这是一个例子:

val editTextString :String = editText.text.toString()
if(!editTextString.isNullOrEmpty()) //returns true if string is null or empty

TextUtils 有另一种方法,但由于您使用的是 Kotlin,因此这种方法更好。

编辑:

您正在这样做:

if(min.text.toString().toInt()>= 0 && max.text.toString().toInt() <= 1000){
        val rand = Random.nextInt(min.text.toString().toInt(),max.text.toString().toInt()+1)
        resultsTextView.text = rand.toString()
}

这里这一行 min.text.toString().toInt() 向您抛出异常。这样做的原因是因为目前 minmax 是空的 String。所以编译器无法格式化 String equals to "" 中的数字。你应该这样做:

if(!min.text.toString().isNullOrEmpty() && !max.text.toString().isNullOrEmpty() && min.text.toString().toInt()>= 0 && max.text.toString().toInt() <= 1000){
        val rand = Random.nextInt(min.text.toString().toInt(),max.text.toString().toInt()+1)
        resultsTextView.text = rand.toString()
}

我希望这能奏效。如果不是,则将其放入两个 IF 语句中,如下所示:

if(min.text.toString().isNullOrEmpty() || max.text.toString().isNullOrEmpty() {
         resultsTextView.text = "X"
} else if(min.text.toString().toInt() >= 0 && max.text.toString().toInt() <= 1000) {
         val rand = Random.nextInt(min.text.toString().toInt(), max.text.toString.toInt()+1)
         resultsTextView.text = rand.toString()
}

第二种方法可能是更好更简洁的版本,因为您以后不必再检查任何其他内容。