2

当 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);
                }
            }
        });
4

3 回答 3

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);
                }
            }
        });
于 2012-10-29T10:52:56.123 回答
1

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

您可以通过首先将支持库版本更新为 24.2.0 然后numberPassword在 TextInputEditText 上设置 inputType 来完成这项工作。这适用于输入类型textPassword和。numberPasswordtextWebPassword

以下是如何做到这一点:

<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的开发人员文档中获得有关新功能的更多信息。

于 2016-08-22T10:13:43.683 回答
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);
            }
        }
    });
于 2012-10-29T10:47:18.810 回答