代码改变EditText的password属性值

很多登陆dialog都有显示密码的选项,效果如图:

不废话,看代码。

这是定义CheckBox的xml:

<CheckBox
        android:id="@+id/sec_dialog_login_not_firstcheckBox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dip"
        android:layout_marginLeft="10dip"
        android:layout_marginTop="10dip"
        android:button="@drawable/sec_selector_checkbox"
        android:text="显示密码" />

下面是代码片段:

checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
				
	@Override
	public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
		if(isChecked) {
			// 显示为普通文本
			pwdEdit.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
			// 使光标始终在最后位置
			Editable etable = pwdEdit.getText();
			Selection.setSelection(etable, etable.length());
		} else {
			// 显示为密码
			pwdEdit.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
			// 使光标始终在最后位置
			Editable etable = pwdEdit.getText();
			Selection.setSelection(etable, etable.length());
		}
	}
});



经验分享 程序员 微信小程序 职场和发展