Как включить кнопку, если 2 редактирования текста заполнены? - PullRequest
0 голосов
/ 07 февраля 2020

как включить кнопку, если 2 редактирования текста заполнить использовать 'androidx.core:core-ktx:1.1.0'?

override fun onActivityCreated(savedInstanceState: Bundle?) {
        super.onActivityCreated(savedInstanceState)
        editTextEmailOrPhone.doOnTextChanged { emailOrPhone, _, _, _ ->
            if (isValidEmailOrPhone(emailOrPhone.toString())) {
                buttonLogin.isEnabled = true
            } else {
                edtPassword.doOnTextChanged { password, _, _, _ ->
                buttonLogin.isEnabled = password.toString().length >= 8
                }
            }
        }
    }

    private fun isValidEmailOrPhone(text: String): Boolean =
        android.util.Patterns.EMAIL_ADDRESS.matcher(text).matches() || android.util.Patterns.PHONE.matcher(
            text
        ).matches()

я пробовал. если я заполняю письмо (кнопка включена) <== хорошо выглядеть </p>

, но если я удаляю письмо (кнопка не отключается) <== проблема </p>

1 Ответ

1 голос
/ 07 февраля 2020
edtPassword.doOnTextChanged { password, _, _, _ ->
    onInfoChange(password?.toString(), editTextEmailOrPhone.text?.toString())
}
editTextEmailOrPhone.doOnTextChanged { emailOrPhone, _, _, _ ->
    onInfoChange(edtPassword.text?.toString(), emailOrPhone?.toString())
}
private fun onInfoChange(password : String?, emailOrPhone : String?){
    buttonLogin.isEnabled = isValidEmailOrPhone(emailOrPhone) && password?.length ?: 0 >= 8
}
...