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_ADDRESScó 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.