Computer >> 컴퓨터 >  >> 프로그래밍 >> Android

Kotlin으로 안드로이드 EditText에서 이메일 주소 유효성 검사하기

이 튜토리얼에서는 Kotlin을 사용하여 안드로이드 앱의 EditText에 입력된 이메일 주소가 올바른 형식인지 검증하는 방법을 단계별로 알아봅니다. 정규식(Regex) 패턴과 Toast 메시지를 활용해 사용자 입력을 간단하고 직관적으로 확인할 수 있습니다.

1단계 — 새 프로젝트 생성

Android Studio를 실행한 뒤 File → New Project 메뉴로 이동하여 새 프로젝트를 만듭니다. 필요한 모든 정보를 입력하고 빈 액티비티(Empty Activity) 템플릿으로 프로젝트를 구성하세요.

2단계 — 레이아웃 작성 (activity_main.xml)

다음 코드를 res/layout/activity_main.xml 파일에 추가합니다. 화면 상단에는 타이틀용 TextView, 중앙에는 이메일을 입력받을 EditText, 하단에는 검증 버튼이 배치됩니다.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:id="@+id/relativeLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="70dp"
        android:background="#008080"
        android:padding="5dp"
        android:text="TutorialsPoint"
        android:textColor="#fff"
        android:textSize="24sp"
        android:textStyle="bold" />

    <EditText
        android:id="@+id/editText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_margin="20dp"
        android:hint="Enter Email id" />

    <Button
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/editText"
        android:layout_centerInParent="true"
        android:text="Check validation"
        android:textAlignment="center"
        android:textColor="#000"
        android:textSize="18sp" />

</RelativeLayout>

3단계 — 메인 로직 구현 (MainActivity.kt)

다음 코드를 src/MainActivity.kt 파일에 추가합니다. 핵심은 emailPattern이라는 정규식 문자열입니다. 이 패턴은 영문 대소문자, 숫자, 점(.), 언더스코어(_), 하이픈(-)으로 구성된 아이디 부분과 '@' 기호, 그리고 도메인 형식을 검사합니다.

import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {

    lateinit var button: Button
    lateinit var emailId: EditText
    var emailPattern = "[a-zA-Z0-9._-]+@[a-z]+\.+[a-z]+"

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        title = "KotlinApp"

        button = findViewById(R.id.text)
        emailId = findViewById(R.id.editText)

        button.setOnClickListener {
            if (emailId.text.toString().isEmpty()) {
                // 입력값이 비어 있는 경우
                Toast.makeText(applicationContext, "enter email address", Toast.LENGTH_SHORT).show()
            } else {
                if (emailId.text.toString().trim { it <= ' ' }.matches(emailPattern.toRegex())) {
                    // 정규식 패턴과 일치하는 경우
                    Toast.makeText(applicationContext, "valid email address", Toast.LENGTH_SHORT).show()
                } else {
                    // 패턴과 일치하지 않는 경우
                    Toast.makeText(applicationContext, "Invalid email address", Toast.LENGTH_SHORT).show()
                }
            }
        }
    }
}

동작 방식을 간단히 정리하면 다음과 같습니다.

  • 버튼 클릭 시 먼저 입력값이 비어 있는지 확인하고, 비어 있다면 이메일 입력을 요청하는 Toast를 표시합니다.
  • 값이 존재하면 앞뒤 공백을 제거(trim)한 뒤 정규식 패턴과 비교합니다.
  • 패턴이 일치하면 '유효한 이메일', 일치하지 않으면 '잘못된 이메일' 메시지를 사용자에게 보여줍니다.

4단계 — 매니페스트 확인 (androidManifest.xml)

androidManifest.xml 파일이 아래와 같이 설정되어 있는지 확인합니다. 별도의 권한은 필요하지 않으며, MainActivity가 런처 액티비티로 등록되어 있으면 됩니다.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="com.example.q11">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>

앱 실행 및 결과 확인

이제 애플리케이션을 실행해 결과를 확인해 보겠습니다. 실제 안드로이드 기기가 컴퓨터에 연결되어 있다고 가정합니다. Android Studio에서 프로젝트의 액티비티 파일을 연 뒤 툴바의 Run Kotlin으로 안드로이드 EditText에서 이메일 주소 유효성 검사하기 아이콘을 클릭하세요. 실행할 기기 목록에서 자신의 모바일 기기를 선택하면, 기기 화면에 아래와 같은 기본 화면이 나타납니다.

Kotlin으로 안드로이드 EditText에서 이메일 주소 유효성 검사하기

이메일 입력란에 값을 입력하고 검증 버튼을 누르면, 형식이 올바른지 여부에 따라 Toast 메시지로 결과가 표시됩니다.

Kotlin으로 안드로이드 EditText에서 이메일 주소 유효성 검사하기

마무리

이처럼 Kotlin의 matches() 함수와 정규식만 활용하면 별도의 외부 라이브러리 없이도 간단하게 이메일 유효성 검사를 구현할 수 있습니다. 더 엄격한 검증이 필요하다면 android.util.Patterns.EMAIL_ADDRESS를 사용하거나, 정규식 패턴을 확장하여 TLD(최상위 도메인)까지 검사하도록 개선할 수 있습니다.