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

Cách kiểm tra EditText rỗng trong Android bằng Kotlin

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.