经常在做注册界面的时候,需要设置密码可以切换显示状态。怎么做呢?很简单,只要修改EditText的输入类型就好了:
if (isChecked){
edtPassword.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);// 输入为密码且可见
}else {
edtPassword.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD | InputType.TYPE_CLASS_TEXT);// 设置文本类密码(默认不可见),这两个属性必须同时设置
}
切换输入类型的时候又发现一个新的问题:每次切换输入类型时,输入光标都会跑到EditText开始的位置:如下
经过一番查阅,发现有个方法可以专门设置光标位置的:
public void setSelection(int index) {
Selection.setSelection(getText(), index);
}
设置如下:
edtPassword.setSelection(edtPassword.getText().length());
看看结果吧: