Androidでは、4つの単一の数字フィールドを持つパスワードの要件があり、4つのedittextビューを使用しました. 4 つの数字を入力すると、4 つのフィールドが自動的に入力されます。addTextChangedListener を使用してこれを行いました。しかし、問題を除いて、私のパスワードフィールドはドットに置き換えられません。requestfocus() を次のフィールドに使用しているため、前のフィールドがドットを変換していないと思います。私を助けてください。
passInput1.addTextChangedListener(new CustomTextWatcher(passInput1, passInput2));
passInput2.addTextChangedListener(new CustomTextWatcher(passInput2, passInput3));
passInput3.addTextChangedListener(new CustomTextWatcher(passInput3, passInput4));
My 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) {
}
}