
The User can enter only one digit in the edit text. if he enters the value in
This worked for my case, also max_length of edit text should be 1.
otp_1.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
//
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
//
if(editable.length()>0){
otp_1.clearFocus();
otp_2.requestFocus();
otp_2.setCursorVisible(true);
}
}
});
otp_2.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
//
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
//
if(editable.length() > 0) {
otp_2.clearFocus();
otp_3.requestFocus();
otp_3.setCursorVisible(true);
}
}
});
otp_3.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
//
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
if(editable.length() > 0) {
otp_3.clearFocus();
otp_4.requestFocus();
otp_4.setCursorVisible(true);
}
}
});