вызвать метод при вводе текста в поля почты и адреса и при простановке/снятии галки с чекбокса

Столкнулся с проблемой в виде активации кнопки логина, она должна работать, только есть поля почты и адреса заполнены и стоит галка на чекбоксе. Метод с помощью Handler не подходит..

вот изначальный код:

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        login_button.setOnClickListener {
            nameInput.setText("")
            passwordInput.setText("")
            login()
        }
    }

    private fun login() {
        login_button.isEnabled = false
        nameInput.isEnabled = false
        passwordInput.isEnabled = false
        checkbox.isEnabled = false
        val progBar = ProgressBar(this).apply {
            layoutParams = LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.MATCH_PARENT,
                LinearLayout.LayoutParams.MATCH_PARENT
            )
        }
        container.addView(progBar)
        android.os.Handler().postDelayed({
            container.removeView(progBar)
            nameInput.isEnabled = true
            passwordInput.isEnabled = true
            checkbox.isEnabled = true
            checkbox.isChecked = false
            Toast.makeText(this, R.string.login_completed, Toast.LENGTH_LONG).show()
        }, 2000)
        changeButtonEnabled()
    }

    private fun changeButtonEnabled() {
        login_button.isEnabled =
            nameInput.text.isNotBlank() && passwordInput.text.isNotBlank() && checkbox.isChecked
    }

}


Ответы (0 шт):