Android EditText 设置密码可见/不可见(解决密码
2022-05-09 本文已影响0人
墨韵
解决:密码可见时,中文可以输入bug
密码可见时,中文可以输入bug小眼睛为CheckBox
// 不允许输入汉字
DigitsKeyListener digitsKeyListener = new DigitsKeyListener() {
@Override
public int getInputType() {
return InputType.TYPE_TEXT_VARIATION_PASSWORD;
}
@Override
protected char[] getAcceptedChars() {
String a = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!”#$%&’()*+,-./:;<=>?@[\\]^_`{|}~";
return a.toCharArray();
}
};
// 设置允许的字符setKeyListener
mEdtPassword.setKeyListener(digitsKeyListener);
eyeCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
mEdtPassword.setInputType(InputType.TYPE_CLASS_TEXT | (isChecked ? InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD : InputType.TYPE_TEXT_VARIATION_PASSWORD));
mEdtPassword.setSelection(mEdtPassword.getText().length());
// 【可见时:再次设置一次】设置允许的字符setKeyListener
mEdtPassword.setKeyListener(digitsKeyListener);
}
});