Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
311 views
in Technique[技术] by (71.8m points)

android - TextWatcher Not working, To use afterTextChaanges or onTextChanged

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

count is not the length of text here . please check Docs.

You should use s.length() instead.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...