비밀번호를 입력하는 EditText와 비밀번호 보이기 기능을 위한 CheckBox가 마련되어 있는데요,
비밀번호는 기본적으로 레이아웃에 InputType이 textPassword로 지정되어 있어서 ****로 표시가 됩니다.
체크박스 부분 코드는 이렇게 짰습니다.
chkPWType = (CheckBox) findViewById(R.id.CheckAuto);
chkPWType.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
EditText pw = (EditText) findViewById(R.id.EditPW);
if (chkPWType.isChecked() == true) {
pw.setInputType(InputType.TYPE_CLASS_TEXT);
} else if (chkPWType.isChecked() == false) {
pw.setInputType(InputType.TYPE_NUMBER_VARIATION_PASSWORD);
}
}
});
원하는 동작은 보시다시피 체크박스를 누르고 체크되어있다면 InputType을 일반 텍스트로(입력한 비밀번호가 보이도록) 하고,
체크가 안된 상태라면 다시 처음의 상태, 즉 비밀번호가 ****처리되는 상태로 만들고 싶은 건데요,
이게 ****을 일반 텍스트로 바꾸는 것은 되는데, 거꾸로는 되지 않습니다.
즉 비밀번호 표시 체크박스를 해제했는데 여전히 표시되는것이죠
도움 부탁드리겠습니다(__)