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

안드로이드 EditText 입력값이 이메일 주소인지 확인하는 방법

예제를 시작하기 전에 테스트 시나리오를 먼저 이해해야 합니다. 로그인 페이지에서는 일반적으로 사용자로부터 이메일 아이디와 비밀번호를 EditText를 통해 입력받습니다. 이때 입력받은 이메일 아이디가 올바른 형식인지 반드시 검증해야 합니다.

이 예제는 EditText에 입력된 텍스트가 유효한 이메일 주소인지 확인하는 방법을 보여줍니다.

1단계 — 새 프로젝트 생성

Android Studio에서 File → New Project로 이동하여 새 프로젝트를 생성하고, 필요한 모든 세부 정보를 입력합니다.

2단계 — 레이아웃 파일 작성

res/layout/activity_main.xml에 다음 코드를 추가합니다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:app="https://schemas.android.com/apk/res-auto"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center_horizontal"
    tools:context=".MainActivity">
    <EditText
        android:id="@+id/email"
        android:hint="Email id"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    <Button
        android:id="@+id/valid"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Check validation"/>
</LinearLayout>

위 레이아웃에는 EditText와 버튼이 포함되어 있습니다. 사용자가 EditText에 이메일 아이디 또는 문자열을 입력하고 버튼을 클릭하면, 입력된 문자열의 유효성 검사가 수행됩니다.

3단계 — MainActivity.java 작성

src/MainActivity.java에 다음 코드를 추가합니다.

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class MainActivity extends AppCompatActivity {
    String emailRegEx;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        emailRegEx = "^[A-Za-z0-9._%+\\-]+@[A-Za-z0-9.\\-]+\\.[A-Za-z]{2,4}$";
        final EditText email = findViewById(R.id.email);
        Button valid = findViewById(R.id.valid);
        valid.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Pattern pattern = Pattern.compile(emailRegEx);
                Matcher matcher = pattern.matcher(email.getText().toString());
                if (email.getText().toString().isEmpty()) {
                    Toast.makeText(MainActivity.this, "please enter email id", Toast.LENGTH_LONG).show();
                } else if (!matcher.find()) {
                    Toast.makeText(MainActivity.this, "Not an email id", Toast.LENGTH_LONG).show();
                } else {
                    Toast.makeText(MainActivity.this, "email id is valid", Toast.LENGTH_LONG).show();
                }
            }
        });
    }
}

위 코드에서는 PatternMatcher 클래스를 사용하여 입력된 문자열이 유효한 이메일 형식인지 판별합니다. 정규식 패턴은 이메일의 일반적인 구조(아이디 부분 + @ + 도메인)를 검사하도록 작성되었습니다.

4단계 — 애플리케이션 실행

manifest.xml 파일은 수정할 필요가 없습니다. 실제 Android 기기를 컴퓨터에 연결했다고 가정하고 앱을 실행해 보겠습니다. Android Studio에서 프로젝트의 액티비티 파일 중 하나를 연 뒤, 툴바의 Run 아이콘을 클릭합니다. 실행 옵션에서 자신의 모바일 기기를 선택하면, 기기 화면에 다음과 같은 결과가 표시됩니다.

안드로이드 EditText 입력값이 이메일 주소인지 확인하는 방법

위 예제에서는 EditText에 아무것도 입력하지 않고 버튼을 클릭했습니다. 그 결과 "plz enter email id(이메일 아이디를 입력하세요)"라는 경고 메시지가 표시됩니다.

안드로이드 EditText 입력값이 이메일 주소인지 확인하는 방법

위 예제에서는 잘못된 이메일 아이디를 입력했습니다. 그 결과 "Not an email id(유효하지 않은 이메일 아이디)"라는 경고 메시지가 표시됩니다.

안드로이드 EditText 입력값이 이메일 주소인지 확인하는 방법

위 예제에서는 올바른 이메일 아이디를 입력했습니다. 그 결과 "Email id is valid(유효한 이메일 아이디입니다)"라는 출력이 표시됩니다.