التحقّق من صحة الإدخال أثناء كتابته

يمكنك التحقّق من صحة البيانات التي يُدخلها المستخدم في حقل نصي، مثل إدخال اسم أو عنوان بريد إلكتروني أو عنوان أو معلومات اتصال أخرى. يقلّل هذا التحقّق من الأخطاء ويوفر وقت المستخدمين.

النتائج

إدخال نصي صالح
الشكل 1. حقل إدخال نص يعرض أدوات التحقّق من صحة البريد الإلكتروني بدون عرض رسائل خطأ لعنوان بريد إلكتروني صالح
إدخال نص غير صالح يتضمّن أخطاء
الشكل 2. حقل إدخال نص يعرض رسالة خطأ عند إدخال عنوان بريد إلكتروني غير صالح

التوافق مع الإصدارات

يتطلّب هذا التنفيذ ضبط minSDK لمشروعك على مستوى واجهة برمجة التطبيقات 21 أو أعلى.

الطلبات التابعة

التحقّق من صحة البيانات التي يُدخلها المستخدم

استخدِم الرمز البرمجي التالي لعرض البيانات التي يُدخلها المستخدم في الحقل والتحقّق من صحة النص أثناء كتابته. إذا لم يتم التحقّق من صحة المعلومات، تساعد رسالة الخطأ المستخدم في تصحيح البيانات التي أدخلها.

class EmailViewModel : ViewModel() {
    var email by mutableStateOf("")
        private set

    val emailHasErrors by derivedStateOf {
        if (email.isNotEmpty()) {
            // Email is considered erroneous until it completely matches EMAIL_ADDRESS.
            !android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches()
        } else {
            false
        }
    }

    fun updateEmail(input: String) {
        email = input
    }
}

@Composable
fun ValidatingInputTextField(
    email: String,
    updateState: (String) -> Unit,
    validatorHasErrors: Boolean
) {
    OutlinedTextField(
        modifier = Modifier
            .fillMaxWidth()
            .padding(10.dp),
        value = email,
        onValueChange = updateState,
        label = { Text("Email") },
        isError = validatorHasErrors,
        supportingText = {
            if (validatorHasErrors) {
                Text("Incorrect email format.")
            }
        }
    )
}

@Preview
@Composable
fun ValidateInput() {
    val emailViewModel: EmailViewModel = viewModel<EmailViewModel>()
    ValidatingInputTextField(
        email = emailViewModel.email,
        updateState = { input -> emailViewModel.updateEmail(input) },
        validatorHasErrors = emailViewModel.emailHasErrors
    )
}

نقاط أساسية حول الرمز البرمجي

  • يحدّد هذا الرمز البرمجي دالة قابلة للإنشاء تعيد استخدام مكوّن OutlinedTextField، مع إضافة المَعلمات المطلوبة لعرض رسائل الخطأ الخاصة بأداة التحقّق من صحة البيانات أثناء كتابة المستخدم.
  • يتم استخدام EmailViewModel للحفاظ على الحالة وتوفير منطق التحقّق من صحة البريد الإلكتروني.
  • إذا كانت قيمة isError هي "صحيح"، تقدّم واجهة المستخدم مؤشرًا مرئيًا لحالة خطأ في التحقّق من صحة البيانات.
  • سيعرض المكوّن الرسالة "تنسيق البريد الإلكتروني غير صحيح" إلى أن يتم إدخال عنوان بريد إلكتروني كامل وصحيح.

المجموعات التي تتضمّن هذا الدليل

هذا الدليل جزء من مجموعات "الدليل السريع" المنسّقة التي تغطي أهدافًا أوسع لتطوير تطبيقات Android:

النص هو جزء أساسي من أي واجهة مستخدم. تعرَّف على الطرق المختلفة التي يمكنك من خلالها عرض النص في تطبيقك لتقديم تجربة ممتعة للمستخدم.
تعرَّف على كيفية تنفيذ طرق تفاعل المستخدمين مع تطبيقك من خلال إدخال النص واستخدام وسائل إدخال أخرى.

هل لديك أسئلة أو ملاحظات؟

انتقِل إلى صفحة الأسئلة الشائعة وتعرَّف على "الأدلة السريعة" أو تواصَل معنا وأخبرنا بآرائك.