우찬쓰 개발블로그

안드로이드 EditText의 password 가려지는 문자 변경하기 본문

안드로이드/안드로이드 개발

안드로이드 EditText의 password 가려지는 문자 변경하기

이우찬 2019. 6. 19. 10:57
반응형

비밀번호 변경 등의 기능을 구현하다보면 패스워드 입력시의 가려지는 문자에도 디자인이 들어가는 경우가 있다.

 

이런 경우에는 어떻게 바꾸어주어야 할까?

 

간단히 예제로 해당 동그라미 문자를 #으로 바꾸어 보자

 

 

먼저 CharSequence 클래스를 상속받는다.

 

class CustomCharSequence(private val source: CharSequence): CharSequence {

    override val length: Int
        get() = source.length

    override fun get(index: Int): Char {
        return '#'
    }

    override fun subSequence(startIndex: Int, endIndex: Int): CharSequence {
        return source.subSequence(startIndex, endIndex)
    }
}

 

로직을 보면 알겠지만, get의 리턴값이 무조건 '#'이라는 문자인 것을 볼 수 있다.

 

이 로직으로 이제 PasswordTransformationMethod를 상속받은 클래스에 적용한다.

 

class CustomPasswordTransformationMethod : PasswordTransformationMethod() {

    override fun getTransformation(source: CharSequence, view: View): CharSequence {
        return CustomPasswordCharSequence(source)
    }
}

 

그다음 EditText에 CustomPasswordTransformationMethod를 생성하여 적용한다.

 

et_pw.transformationMethod = MyPasswordTransformationMethod()

 

테스트해보면 기존의 동그라미로 표시되던 가림문자가 #으로 변경된 것을 확인할 수 있다.

 

이 부분에 있어서는 생각보다 레퍼런스를 찾기 힘들었는데, 누군가에게 도움이 되었으면 한다.

반응형
Comments