在 android 中,我需要使用四个单个数字字段的密码,并且我使用了四个 edittext 视图。如果我们输入 4 个数字,它会自动填充四个字段。我已经通过使用 addTextChangedListener 完成了这项工作。但是除了问题之外,我的密码文件没有被点替换。我认为由于使用 requestfocus() 到下一个字段,前一个字段没有转换点。请帮我。
passInput1.addTextChangedListener(new CustomTextWatcher(passInput1, passInput2));
passInput2.addTextChangedListener(new CustomTextWatcher(passInput2, passInput3));
passInput3.addTextChangedListener(new CustomTextWatcher(passInput3, passInput4));
我的 CustomWatcher 如下所示。
public class CustomTextWatcher implements TextWatcher {
private EditText currentEditTextFiledId;
private EditText nextEditTextFiledId;
public CustomTextWatcher(EditText currentEditTextFiledId, EditText nextEditTextFiledId) {
this.currentEditTextFiledId = currentEditTextFiledId;
this.nextEditTextFiledId = nextEditTextFiledId;
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
currentEditTextFiledId.setTransformationMethod(PasswordTransformationMethod.getInstance());
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
Integer textlength1 = currentEditTextFiledId.getText().length();
if (textlength1 >= 1) {
nextEditTextFiledId.requestFocus();
}
}
public void afterTextChanged(Editable s) {
}
}