如何检查 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()
向您抛出异常。这样做的原因是因为目前 min
或 max
是空的 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()
}
第二种方法可能是更好更简洁的版本,因为您以后不必再检查任何其他内容。
所以我在尝试在 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()
向您抛出异常。这样做的原因是因为目前 min
或 max
是空的 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()
}
第二种方法可能是更好更简洁的版本,因为您以后不必再检查任何其他内容。