Giới thiệu
Bài viết này hướng dẫn cách kiểm tra xem EditText có rỗng hay không trong Android sử dụng Kotlin. Đây là validation cơ bản khi xử lý form nhập liệu.
Các bước thực hiện
Bước 1: Tạo dự án mới
Tạo project mới: File → New Project.
Bước 2: Thiết kế giao diện (res/layout/activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="2dp"
tools:context=".MainActivity">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="45dp"
android:textSize="24sp" />
<Button
android:id="@+id/buttonCheck"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/editText"
android:layout_centerInParent="true"
android:layout_marginTop="25sp"
android:text="Check Edit" />
</RelativeLayout>
Bước 3: Xử lý logic (src/MainActivity.kt)
import android.os.Bundle
import android.text.TextUtils
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
private lateinit var editText: EditText
private lateinit var button: Button
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
title = "KotlinApp"
editText = findViewById(R.id.editText)
button = findViewById(R.id.buttonCheck)
button.setOnClickListener {
// Cách 1: Sử dụng TextUtils (khuyên dùng)
if (TextUtils.isEmpty(editText.text.toString())) {
Toast.makeText(this, "Empty field not allowed!", Toast.LENGTH_SHORT).show()
} else {
Toast.makeText(this, "Proceed..", Toast.LENGTH_SHORT).show()
}
// Cách 2: Sử dụng Kotlin extension (cần import android.text.TextUtils.isNullOrEmpty)
// if (editText.text.isNullOrEmpty()) { ... }
// Cách 3: Kiểm tra thủ công
// if (editText.text.toString().trim().isEmpty()) { ... }
}
}
}
Bước 4: Cấu hình Manifest (androidManifest.xml)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="app.com.q1">
<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 ứng dụng
Kết nối thiết bị, nhấn Run. Thử nhấn nút "Check Edit" khi EditText rỗng và khi đã nhập text để xem kết quả Toast.
So sánh các phương pháp kiểm tra
| Phương pháp | Ưu điểm | Nhược điểm |
|---|---|---|
TextUtils.isEmpty() |
API chuẩn Android, xử lý null an toàn | Không loại bỏ khoảng trắng |
text.isNullOrEmpty() |
Kotlin idiomatic, ngắn gọn | Cần import extension |
text.toString().trim().isEmpty() |
Loại bỏ khoảng trắng đầu/cuối | Tạo string mới, hơi verbose |
text.isNullOrBlank() |
Kiểm tra null, rỗng, và chỉ chứa whitespace | API 24+ (Android 7.0+) |
Best Practice
Đối với form validation thực tế, nên kết hợp:
fun validateInput(editText: EditText): Boolean {
val input = editText.text.toString().trim()
return if (input.isEmpty()) {
editText.error = "Field cannot be empty"
editText.requestFocus()
false
} else {
editText.error = null
true
}
}
Cách này hiển thị error trực tiếp trên EditText và focus vào trường lỗi.