<Android>doAfterTextChanged 사용해EditText를 유효성 검사 방법

진섭·2023년 6월 27일
0

Android

목록 보기
21/31
post-thumbnail

🔨 개요

동물원 예제를 만들면서 나이와 몸무게를 입력받는 곳이 있었는데 이 부분을 0 이상 값을 받을 수 있도록 유효성 검사를 하고 싶어서 찾아봤는데 변경되는 텍스트를 실시간으로 확인하여 올바른 형식으로 텍스트를 입력했는지 등을 확인할 수 있는 doAfterTextChanged함수가 있어서 사용을 해봤습니다.

안드로이드에서 공식 문서에 의하면 텍스트가 변경된 후 호출될 작업을 추가한다고 나와있으니 제가 원하는대로 EditText 값을 입력 받은 후 doAfterTextChanged 함수를 이용해 그 안에서 유효성 검사를 하면 될 것이다 생각을 했습니다.

🔨 사용법

1. XML 파일

    <EditText
        android:id="@+id/editTextInputUserAge"
        android:layout_width="match_parent"
        android:inputType="number"
        android:layout_height="wrap_content"
        android:hint="나이" />

2. editTextInputUserAge 입력된 텍스트를 가져와 유효성 검사하기

  1. editTextInputUserAge의 텍스트를 가져와서 문자열로 변환하고 앞뒤의 공백을 제거한 뒤, ageString 변수에 저장합니다.
  2. ageString 변수를 이용해 if ~ else를 통해 비어 있으면 나이를 입력하라고 하고 비어 있지 않으면 else 절로 가서 다시 if ~else로 ageString을 Int로 형변환 후 0이거나 0보다 작으면 0보다 큰 수를 입력하라고 하고 올바르게 입력이 되면 에러 메시지를 지웠습니다.
binding.run{
	editTextInputUserAge.doAfterTextChanged {
                val ageString = editTextInputUserAge.text.toString().trim()
                if (ageString.isEmpty()) {
                    editTextInputUserAge.error = "나이를 입력하세요."
                } else {
                    if (ageString.toInt() <= 0) {
                        editTextInputUserAge.error = "0보다 큰 수를 입력하세요."
                    } else {
                        editTextInputUserAge.error = null // 에러 메시지 지우기
                    }
                }
            }
    }
profile
Android 개발자

0개의 댓글