EditText控制密码是否可见

278 阅读1分钟

方式一:保持digit规则不变

public class EditTextVisibleUtil {

    /**
     * 显示或隐藏输入内容,并且不破坏digit规则
     * @param visible
     * @param editText
     */
    public static void TextVisible(boolean visible, EditText editText){
        if(visible){
            //用这个来控制密码可见:
            editText.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
        }else{
            //控制密码不可见:
            editText.setTransformationMethod(PasswordTransformationMethod.getInstance());
        }
    }
}

方式二:保持digit规则不变,但是字体变宽了


Passwd.setInputType((ifVisible ? InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD : InputType.TYPE_TEXT_VARIATION_PASSWORD) | InputType.TYPE_CLASS_TEXT);
Passwd.setKeyListener(DigitsKeyListener.getInstance(getString(R.string.number_letter)));

方式三:digit 规则会被改变,不可采用

Passwd.setInputType((ifVisible ? InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD : InputType.TYPE_TEXT_VARIATION_PASSWORD) | InputType.TYPE_CLASS_TEXT);