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

Cách kiểm tra hợp lệ (validate) đầu vào EditText trong Android

Giới thiệu

Hướng dẫn này minh họa cách kiểm tra hợp lệ (validate) dữ liệu nhập vào EditText trong Android bằng cách tạo một InputFilter tùy chỉnh sử dụng Regular Expression (Regex) để chỉ cho phép ký tự chữ cái, số và dấu gạch dưới.

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

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

Mở Android Studio, chọn File → New Project và điền thông tin cần thiết.

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:layout_margin="16dp"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/editText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Nhập văn bản chữ và số"
        android:inputType="text"
        tools:ignore="Autofill" />
</RelativeLayout>

Bước 3: Tạo class ValidateFilter (InputFilter tùy chỉnh)

package app.tutorialspoint.com.sample;

import android.text.InputFilter;
import android.text.Spanned;
import android.util.Log;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ValidateFilter implements InputFilter {
    @Override
    public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
        for (int i = start; i < end; i++) {
            String checkMe = String.valueOf(source.charAt(i));
            Pattern pattern = Pattern.compile("[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz123456789_]*");
            Matcher matcher = pattern.matcher(checkMe);
            boolean valid = matcher.matches();
            if (!valid) {
                Log.d("", "invalid");
                return "";
            }
        }
        return null;
    }
}

Bước 4: Viết code MainActivity

package app.tutorialspoint.com.sample;

import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.text.InputFilter;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        EditText editText = findViewById(R.id.editText);
        editText.setFilters(new InputFilter[]{new ValidateFilter()});
    }
}

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

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

    <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ị Android thật, chạy ứng dụng từ Android Studio. Thử nhập các ký tự đặc biệt - chúng sẽ bị chặn, chỉ chấp nhận chữ cái, số và dấu gạch dưới.

Cách kiểm tra hợp lệ (validate) đầu vào EditText trong Android