EditText()的奇怪问题-Android Kotlin

时间:2019-12-19 06:08:54

标签: android kotlin android-edittext trim

我面临着这个奇怪的问题:

    // definition
    var myEditText: EditText? = null

    .
    .
    .

    // instantiation
    myEditText = EditText(this)
    myEditText?.setSingleLine(true)
    myEditText?.setTextColor(Color.YELLOW)
    myEditText?.setBackgroundColor(Color.RED)
    myEditText?.setPadding(10, 0, 10, 0)
    myEditText?.gravity = Gravity.CENTER_VERTICAL
    myEditText?.inputType = InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS
    myEditText?.setOnFocusChangeListener { view, hasFocus -> ...

    rootView.addView(myEditText)

    .
    .
    .

    if (myEditText?.text == null || myEditText?.text.trim() == "") {

        println("it's blank!")   // doesn't execute

    } else {

        println(">>>" + myEditText?.text.trim() + "<<<")

    }

    // output: >>><<<

EditText()控件已正确实例化并正确显示在屏幕上。我能够输入文字,它将正确返回条目。

但是为什么不能识别文本框为空?

1 个答案:

答案 0 :(得分:2)

myEditText?.text.toString()

您应该使用toString()

  

返回对象的字符串表示形式。一般而言,   toString方法返回的字符串“以文字形式表示”   宾语。结果应该简洁明了,但内容丰富   这对一个人来说很容易阅读。建议所有   子类会覆盖此方法。