当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);
}
}
});
答案 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,从而完成这项工作。这适用于输入类型textPassword
,numberPassword
和textWebPassword
。
以下是如何做到这一点:
<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);
}
}
});