Edit text for OTP with Each letter in separate positions

后端 未结 19 994
别跟我提以往
别跟我提以往 2020-12-13 00:25

I\'m working on a application which asks for OTP when user want to reset his password for which I need a text like the one in attached Image... What I thought to proceed wi

19条回答
  •  攒了一身酷
    2020-12-13 00:43

    public class GenericTextWatcher implements TextWatcher {
        private EditText etPrev;
        private EditText etNext;
    
        public GenericTextWatcher(EditText etNext, EditText etPrev) {
            this.etPrev = etPrev;
            this.etNext = etNext;
        }
    
        @Override
        public void afterTextChanged(Editable editable) {
            String text = editable.toString();
            if (text.length() == 1)
                etNext.requestFocus();
            else if (text.length() == 0)
                etPrev.requestFocus();
        }
    
        @Override
        public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
        }
    
        @Override
        public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
        }
    }
    

    Next, we add the addTextChangedListener on each edittext.

    e1.addTextChangedListener(new GenericTextWatcher(e2, e1))
    e2.addTextChangedListener(new GenericTextWatcher(e3, e1))
    e3.addTextChangedListener(new GenericTextWatcher(e4, e2))
    e4.addTextChangedListener(new GenericTextWatcher(e5, e3))
    e5.addTextChangedListener(new GenericTextWatcher(e6, e4))
    e6.addTextChangedListener(new GenericTextWatcher(e6, e5))
    

提交回复
热议问题