开发指南

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);
    }
});
上一篇 下一篇

猜你喜欢

热点阅读