I've to make a textfield, after entering 6 digits it will automatically call another function.
Here is what is did so far:
//In onViewCreated
binding.etOtp.addTextChangedListener(textWatcher)
//onViewCreated functions ends
private val textWatcher = object : TextWatcher {
override fun afterTextChanged(s: Editable?) {
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
if (count == 6) {
val otp=binding.etOtp.text.toString().trim()
val credential : PhoneAuthCredential = PhoneAuthProvider.getCredential(
storedVerificationId.toString(), otp)
signInWithPhoneAuthCredential(credential)
}
}
}
private fun signInWithPhoneAuthCredential(credential: PhoneAuthCredential) {
auth.signInWithCredential(credential)
.addOnCompleteListener(this.requireActivity()) { task ->
if (task.isSuccessful) {
startActivity(Intent(activity?.applicationContext, DashboardActivity::class.java))
activity?.finish()
}
}
}
I got no error, but it is not working.
No suspicious log cat nothing, when I type the 6 digit otp it doesn't do anything.
Just the cursor blinks.
Will I've to write in afterTextChanged.
question from:
https://stackoverflow.com/questions/65918990/textwatcher-not-working-to-use-aftertextchaanges-or-ontextchanged 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…