반응형
EditText Masking
EditText의 inputType이 password, numberPassword, textPassword 등 일 경우 자동으로 Masking처리가 되어 입력한 문자를 변환
이러한 Masking 처리를 할 때 안드로이드에서는 기본적으로 아래와 같은 동그란 문자로 표현이 됨

EditText Masking 변경 방법
- 익명 클래스로 선언 (프로젝트에서 한번만 사용하는 경우)
-
mBinding.inputNumber.setTransformationMethod(new PasswordTransformationMethod(){ @Override public CharSequence getTransformation(CharSequence source, View view) { return new PasswordCharSequence(source); } class PasswordCharSequence implements CharSequence { private final CharSequence source; public PasswordCharSequence(CharSequence source) { this.source = source; } @Override public int length() { return source.length(); } @Override public char charAt(int index) { // 여기에서 마스킹할 문자를 정의 return '*'; // '*' 대신 다른 문자로 변경 가능 } @Override public CharSequence subSequence(int start, int end) { return source.subSequence(start, end); } } });
-
- PasswordTransformationMethod 커스텀마이징 (여러 군데에서 계속 사용하는 경우)
-
import android.text.method.PasswordTransformationMethod; import android.view.View; public class CustomPasswordTransformationMethod extends PasswordTransformationMethod { @Override public CharSequence getTransformation(CharSequence source, View view) { return new PasswordCharSequence(source); } private static class PasswordCharSequence implements CharSequence { private CharSequence source; public PasswordCharSequence(CharSequence source) { this.source = source; } @Override public int length() { return source.length(); } @Override public char charAt(int index) { // 여기에서 마스킹할 문자를 정의 return '*'; // '*' 대신 다른 문자로 변경 가능 } @Override public CharSequence subSequence(int start, int end) { return source.subSequence(start, end); } } }
-
mBinding.inputNumber.setTransformationMethod(new CustomPasswordTransformationMethod());
-
주의할 점
- 위와 같이 setTransformationMethod를 통해 masking 문자를 설정 할 경우 EditText의 InputType이 password, numberPassword, textPassword 등이 아니어도 문자가 Masking 처리가 됨
반응형
'안드로이드 심심풀이 > 응용' 카테고리의 다른 글
[안드로이드 스튜디오]TimerTask() 재사용 (0) | 2020.12.14 |
---|---|
[안드로이드 스튜디오]gif 없이 일정시간마다 배경이미지 변경 및 페이드인, 아웃 (1) | 2020.12.04 |
[안드로이드 스튜디오] RecyclerView 리로딩과 Fragment 새로고침 (0) | 2019.07.25 |
[안드로이드 스튜디오] RecyclerView에 ViewPager 사용하기 (0) | 2019.07.22 |
[안드로이드 스튜디오] Retrofit 라이브러리 예제 (0) | 2019.07.17 |