在edittext中设置密码的可见性

时间:2012-10-29 10:32:17

标签: android

当inputType是文本但是我想要密码类型号时,此代码是正确的。单击复选框我希望密码可见。

checkbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if(isChecked) {
                    password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
                } else {
                    password.setInputType(129);
                }
            }
        });

3 个答案:

答案 0 :(得分:1)

您可以使用:

checkbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if(isChecked) {
                    password.setInputType(InputType.TYPE_NUMBER_VARIATION_PASSWORD);
                } else {
                    password.setInputType(InputType.TYPE_NUMBER_VARIATION_NORMAL);
                }
            }
        });

答案 1 :(得分:1)

已添加密码可见性切换功能以支持库版本24.2.0,使您可以直接从EditText切换密码,而无需使用CheckBox。

您可以基本上首先将支持库版本更新为24.2.0,然后在TextInputEditText上设置numberPassword的inputType,从而完成这项工作。这适用于输入类型textPasswordnumberPasswordtextWebPassword

以下是如何做到这一点:

<android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <android.support.design.widget.TextInputEditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/password"
            android:inputType="numberPassword"/>
</android.support.design.widget.TextInputLayout>

您可以在TextInputLayout的开发者文档中获取有关新功能的更多信息。

答案 2 :(得分:0)

对于数字使用:

checkbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if(isChecked) {
                password.setInputType(InputType.TYPE_NUMBER_VARIATION_PASSWORD);
            } else {
                password.setInputType(InputType.TYPE_NUMBER_FLAG_SIGNED);
            }
        }
    });