마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 에디트텍스트 비밀번호 마지막자리 안보이게 하는방법 질문합니다 도와주세요 ㅠ

0 추천
에디트 택스트에 android:inputType:"texxtPassword" 를 지정해서 비밀번호 창을 만들었는데요

비밀번호를 입력할때 마지막 한자리는 입력할때마다 보이더라구요

보안상 안좋을꺼 같은데 입력할때마다 *로 보이게끔 할수있는 방법은 어떤것들이 있을까요

예를들어 비밀번호가 1111이라고 하면

현재는 ***1 이런식으로 되는데

****이런식으로 변경하고 싶은데 뭔가 설정해주는 방법이 있을거 같아서 질문한번 해봅니다.
tonecolor (410 포인트) 님이 2015년 9월 29일 질문
보안이 얼마나 중요한 어플인지는 모르겠지만, 사용자 편의성도 생각하시면 기존 그대로 쓰시는게 좋을듯 합니다.

1개의 답변

0 추천
// 패스워드 edittext 에서 패스워드 변경메서드 구현체로 CustomPasswordTransformationMethod 클래스 인스턴스를 설정해 주면 됩니다.

passwordTxt.setTransformationMethod(new CustomPasswordTransformationMethod());

// 아래와 같이 패스워드 변경 메서드를 재정의하는 클래스를 만들어서 사용하시면 됩니다.

    static class CustomPasswordTransformationMethod extends PasswordTransformationMethod {
        @Override
        public CharSequence getTransformation(CharSequence source, View view) {
            return new PasswordCharSequence(source);
        }

        private class PasswordCharSequence implements CharSequence {
            private CharSequence mSource;
            public PasswordCharSequence(CharSequence source) {
                mSource = source; // Store char sequence
            }
            public char charAt(int index) {
                return '*'; // This is the important part
            }
            public int length() {
                return mSource.length(); // Return default
            }
            public CharSequence subSequence(int start, int end) {
                return mSource.subSequence(start, end); // Return default
            }
        }
    }
mcsong (44,040 포인트) 님이 2015년 9월 30일 답변
감사합니다 덕분에 해결하였습니다.
소스는 한번 검토해 봐야 겠네요.
도와주셔서 감사합니다 ㅎㅎ
...