首页 > 解决方案 > Kotlin Clearing 单击时清除编辑文本

问题描述

So I am having issues finding a Kotlin way to clear a edit number field when the input is selected to enter a number.

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

        //MyCode
        val submitButton: Button = findViewById(R.id.submit)
        var quarterQuan: EditText = findViewById(R.id.quarterInput)
        var dimeQuan: EditText = findViewById(R.id.dimeInput)
        val quarterEditTextValue = quarterQuan.text.toString().toFloat()
        val dimeEditTextValue = dimeQuan.text.toString().toFloat()
        val dime = Dime()
        val quarter= Quarter()
        var quarterTotal = quarter.quarterVal*quarterEditTextValue
        var dimeTotal = dime.dimeVal*dimeEditTextValue
        var cashTotal = dimeTotal + quarterTotal

    submitButton.setOnClickListener{
        var resultTextViewLabel: TextView = findViewById(R.id.textResult)
        resultTextViewLabel.text = cashTotal.toString()
    }
}

}

我试图做一些没有成功的事情......

       quarterQuan.setOnClickListener{
        editText.getText().clear();
    }

标签: androidandroid-studiokotlin

解决方案


在范围内:首先从您的(例如editTextU)onCreate定义一个(例如edTex),然后为它编写一个侦听器,以调用函数。valEditTextcleartext()

       val edTex: EditText = findViewById(R.id.editTexU)
       edTex.setOnClickListener {cleartext()}
       //edTex.setOnFocusChangeListener {view, b -> cleartext()  }

为类创建toEditable()函数String。和写 cleartext()函数。

    fun String.toEditable(): Editable =  Editable.Factory.getInstance().newEditable(this)

  fun cleartext()
    {
       var str=""
       editTexU.text=str.toEditable()
    }


推荐阅读