Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Cách kiểm tra địa chỉ Email trên EditText Android bằng Kotlin

Giới thiệu

Bài viết hướng dẫn cách xác thực định dạng địa chỉ email người dùng nhập vào EditText trên Android sử dụng Kotlin và biểu thức chính quy (Regex).

Các bước thực hiện

Bước 1: Tạo dự án mới

Trong Android Studio, chọn File > New Project, điền thông tin và tạo dự án.

Bước 2: Thiết kế giao diện (activity_main.xml)

Thêm mã sau vào res/layout/activity_main.xml. Giao diện bao gồm tiêu đề, ô nhập email và nút kiểm tra:

<?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="Nhập địa chỉ email" />

    <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="Kiểm tra"
        android:textAlignment="center"
        android:textColor="#000"
        android:textSize="18sp" />

</RelativeLayout>

Bước 3: Xử lý logic (MainActivity.kt)

Cập nhật src/MainActivity.kt với mã kiểm tra email bằng Regex:

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

class MainActivity : AppCompatActivity() {
    private lateinit var button: Button
    private lateinit var emailId: EditText
    // Regex đơn giản cho email: chữ/số/._- @ tên miền . đuôi
    private val 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 {
            val input = emailId.text.toString().trim()
            if (input.isEmpty()) {
                Toast.makeText(applicationContext, "Vui lòng nhập email", Toast.LENGTH_SHORT).show()
            } else if (input.matches(emailPattern.toRegex())) {
                Toast.makeText(applicationContext, "Email hợp lệ", Toast.LENGTH_SHORT).show()
            } else {
                Toast.makeText(applicationContext, "Email không hợp lệ", Toast.LENGTH_SHORT).show()
            }
        }
    }
}

Bước 4: Cấu hình AndroidManifest.xml

File manifest tiêu chuẩn:

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

    <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>

Chạy và kiểm tra

Chạy ứng dụng trên thiết bị/emulator. Nhập các email hợp lệ (ví dụ: user@example.com) và không hợp lệ (ví dụ: user@.com, user@domain) để xem thông báo Toast tương ứng.

Cải tiến gợi ý

  • Sử dụng android.util.Patterns.EMAIL_ADDRESS có sẵn trong Android SDK thay vì tự viết Regex để chính xác hơn.
  • Thêm android:inputType="textEmailAddress" vào EditText để gợi ý bàn phím phù hợp.
  • Hiển thị lỗi trực tiếp trên EditText bằng setError() thay vì Toast.