본문 바로가기
안드로이드 자바

[Java][Android] 실시간 이메일 정규식 체크 기능을 만들어 보자

by teamnova 2021. 2. 15.
728x90

안녕하세요 ~

오늘은 안드로이드에서 스틱 코드를 사용해 이메일 형식을 체크하는 기능을 한번 만들어 보겠습니다 : )

 

스틱 코드란?

stickode.com/mainlogin.html


 

자 그러면 만들어볼까요 ~

 

1. 프로젝트 생성

안드로이드 최신 버전을 설치하고 시작해 주세요. (developer.android.com/studio?hl=ko)

 

안드로이드 최초 실행 화면

 

▶ "Create New Project"를 눌러 새로운 프로젝트를 생성해 줍니다.

 


 

초기 템플릿 설정 창

 초기 템플릿을 설정하는 창입니다 Empty Activity로 만들어줍니다.

 


 

프로젝트 설정 창

 프로젝트 명을 정해주고, 완료를 눌러줍니다.

 


 

초기 프로젝트 화면

 이렇게 프로젝트를 만들었습니다. 이제 레이아웃을 그려보겠습니다.

 


 

2. 레이아웃 그리기

 

초기 레이아웃 화면

 프로젝트에서 res > layout > activity_main.xml로 이동해 줍니다.

 


 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/title"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="100dp"
        android:layout_marginTop="100dp"
        android:layout_marginRight="100dp"
        android:text="이메일 체크 기능"
        android:textSize="30dp"
        android:textStyle="bold"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <EditText
        android:id="@+id/input_email"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="30dp"
        android:layout_marginTop="50dp"
        android:layout_marginEnd="30dp"
        android:ems="10"
        android:inputType="textPersonName"
        android:hint="이메일을 입력해 주세요."
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/title" />

    <TextView
        android:id="@+id/check_email_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="30dp"
        android:layout_marginTop="50dp"
        android:layout_marginEnd="30dp"
        android:text="검사 결과 : "
        android:textSize="20dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/input_email"
        app:layout_constraintVertical_bias="0.0" />

    <TextView
        android:id="@+id/check_email_result"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginStart="10dp"
        android:layout_marginEnd="30dp"
        android:textSize="20dp"
        app:layout_constraintBottom_toBottomOf="@+id/check_email_title"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/check_email_title"
        app:layout_constraintTop_toTopOf="@+id/check_email_title" />


</androidx.constraintlayout.widget.ConstraintLayout>

 

 값을 입력받을 뷰와 입력받은 값이 이메일인지 체크하고 결과 값을 보여줄 뷰를 만들어 줍니다. 

 

 


 

3. 실시간 이메일 정규식 체크 기능 구현

MainActivity.java

밑 작업이 끝났습니다 이제 기능을 추가해 보도록 하겠습니다.

 MainActivity.java 파일로 이동해 줍니다.

 


이메일을 입력 받는 editText
이메일을 입력받는 editText 연결

 위에서 만든 레이아웃에서 텍스트를 인풋 하는 뷰의 아이디 값에 EditText 변수와 연결해주는 작업입니다.

 


 

텍스트 변화 체크하는 코드 자동 완성

 스틱 코드에서 텍스트의 변화를 체크해주는 코드를 불러옵니다.

 불러온 코드의 "inputTextView" 부분에 inputEmail을 입력해 줍니다. 

 


 

 아래쪽에 스틱 코드에서 이메일 형식을 체크해주는 코드를 불러옵니다.

 


 

 

체크 결과를 띄워주는 textView
체크 결과를 띄워주는 textView 연결

 위에서 만든 레이아웃에서 이메일 정규식을 검사한 결과 값을 띄워주는 뷰의 아이디 값에 textView 변수와 연결해주는 작업입니다.

 


 

인풋 받은 텍스트값을 체크하고 결과 세팅

 인풋 창에 입력되는 텍스트에 변화가 있을 때마다 인풋 창의 텍스트를 가져와 이메일 정규식을 체크한 후, 결과를 세팅해주는 코드입니다. 

 


 

4. 기능 테스트

자 이제 기능 구현이 끝났습니다 한번 테스트해보겠습니다.

 

 

 

잘 동작하는 걸 확인할 수 있습니다 긴 글 봐주셔서 감사합니다.

 

사용한 스틱 코드 코드 링크

 

텍스트 변화 체크하는 기능

stickode.com/detail.html?no=1890

 

스틱코드

 

stickode.com

 

 이메일 형식 체크하는 기능

stickode.com/detail.html?no=1891

 

스틱코드

 

stickode.com