#안드로이드 TextWatcher를 이용한 이메일 형식 체크(email validation)
2019. 12. 4. 18:09 ㆍ개발 이야기/android
로그인이나 회원가입 시 이메일!
혹은 조합이 필요한 ID를 계속 확인하면서
원하는 규칙을 갖췄을 때만 입력이 가능하도록 만들고 싶다면!
이를 실시간으로 검증하고 싶다면!
TextWatcher를 사용하면 되는데요!
TextWahtcher를 이용한 validation을 하는 방법을 보도록 하겠습니다
이메일 형식이 아닐 때 !
라인이 빨간색으로 변한 것을 확인할 수 있는데요!
그렇다면
원하는 이메일 형식일 때!
원하는 이메일 형식을 갖추게 되면 까맣게 변하는 것을 볼 수 있습니다.
자 그럼 어떻게 구현할까요?
public class ResetPasswordActivity extends AppCompatActivity {
private EditText inputEmail;
private Button btnReset, btnFindEmail;
private ViewGroup btnBack;
private String emailValidation = "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
// private ProgressBar progressBar;
private RelativeLayout progressBarl;
private String email;
이메일 형식을 잡아내는 정규식을 만들어줍니다!
// 이메일 검증 정규식
"^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"
//비밀번호 조합 정규식
"^.*(?=^.{8,20}$)(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#$%^&+=]).*$"
그러고 나서 특정 email이라는 id를 가진 editText를 계속해서 바라보는
TextWatcher를 생성해줍니다!
아래와 같이 inputEmail의 TextChangedListener를 붙여주고 TextWatcher를 만들어줍니다
inputEmail = findViewById(R.id.email);
inputEmail.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
email = inputEmail.getText().toString().trim();
if (email.matches(emailValidation) && s.length() > 0) {
inputEmail.setBackgroundResource(R.drawable.edt_bg_selector);
btnReset.setBackgroundColor(Color.parseColor("#007ed6"));
} else {
inputEmail.setBackgroundResource(R.drawable.edt_bg_wrong_validate);
btnReset.setBackgroundColor(Color.parseColor("#c0c0c0"));
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
});
email의 기입된 스트립을 입력이 있을 때마다 가져와서
정규식에 부합 여부에 따라 라인의 색을 변경하도록 해줍니다!
email.matches(emailValidation)
이렇게 해주면 즉시즉시 입력되는 스트링에 맞게 원하는 정규식과 부합하는지 알 수 있는데요!
이 방법으로 비밀번호 입력 시 3개 조합(영문 특수문자 숫자)
등이 이루어지는지를 확인할 수도 있고
다양한 곳에 사용할 수 있습니다!
'개발 이야기 > android' 카테고리의 다른 글
#안드로이드 FFmpeg 사용하기(64bit 지원) (1) | 2019.12.03 |
---|---|
#안드로이드 FileObserver 사용하기 (0) | 2019.11.25 |
#안드로이드 Kotlin 오디오 파일 Duration 가져오기 (0) | 2019.11.23 |
#안드로이드 Third party 로그인 연동 4(페이스북 연동) (0) | 2019.09.15 |
#안드로이드 Third party 로그인 연동 3(파이어베이스 연동) (0) | 2019.09.15 |