检查输入是否为空Kotlin不起作用

时间:2018-12-10 17:01:40

标签: android android-studio kotlin

伙计们,我刚开始玩android studio,想开发一款可以计算输入值的应用程序的应用程序。如果我给它一个输入值,它会起作用,但如果不是,它会崩溃,因此我尝试检查输入是否为空,但这不能解决错误。这是代码:

class MainActivity : AppCompatActivity() {

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

    val Button = findViewById<Button>(R.id.button)
    val Output = findViewById<TextView>(R.id.Output)
    val Input = findViewById<TextView>(R.id.Input)

    Button.setOnClickListener {


        val num = Input.text.toString().toInt()
        if(num.toString().isNotBlank()) {




            var hilf = 1

            for (i in 1..num.toString().toInt()) {
                hilf *= i

            }
            Output.text = hilf.toString()
        }



    }
}

你们知道我如何解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

首先,您检查EditText是否为空,然后尝试转换为Int

if(!Input.text.toString().trim().isEmpty()) {
    val num = Input.text.toString().toInt()
    var hilf = 1

    for (i in 1..num) {
        hilf *= i
    }
    Output.text = hilf.toString()
}

您也不需要

num.toString().toInt()

您可以使用

1..num

因为num的类型为Int

答案 1 :(得分:0)

您要使用以下内容:

class MainActivity : AppCompatActivity() {

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

    val Button = findViewById<Button>(R.id.button)
    val Output = findViewById<TextView>(R.id.Output)
    val Input = findViewById<TextView>(R.id.Input)

    Button.setOnClickListener {
        val num = Input.text.toString().toInt()
        if(!Input.text.toString().isEmpty()) {
            var hilf = 1
            for (i in 1..num.toString().toInt()) {
                hilf *= i
            }
            Output.text = hilf.toString()
        }
    }
}