0Pricing
Android Academy · درس

معالجة إدخال المستخدم

استجب لنقرات الأزرار، واقرأ النص من EditText، وتحقّق من صحة الإدخال، وقدّم ملاحظات للمستخدم باستخدام رسائل Toast.

معالجة إدخال المستخدم درس مجاني في Android Academy على CoddyKit. هذا هو الدرس 4 من أصل 7. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Android Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Android Academy 7 دروس في المجموع.

ربط واجهة المستخدم بالكود

إنشاء التخطيط ليس سوى الخطوة الأولى. تحتاج أيضًا إلى:

  • قراءة ما كتبه المستخدم في EditText
  • الاستجابة للنقر على الأزرار
  • تحديث TextViews بقيم جديدة

يوضح هذا الدرس كيفية ربط عناصر واجهة المستخدم باستخدام ViewBinding — وهو النهج الحديث والآمن للأنواع.

تفعيل ViewBinding

فعّل ViewBinding في app/build.gradle:

// app/build.gradle (inside android { })
android {
    ...
    buildFeatures {
        viewBinding = true
    }
}

استخدام ViewBinding

ينشئ ViewBinding فئة ربط من تخطيط XML. إذا كان اسم التخطيط activity_main.xml، فسيكون اسم الفئة ActivityMainBinding.

import androidx.appcompat.app.AppCompatActivity
import com.example.myapp.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity() {

    private lateinit var binding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)

        // Access views directly — no casting!
        binding.tvTitle.text = "Hello!"
    }
}

التعامل مع نقرات الأزرار

عيّن مستمع نقر إلى أي طريقة عرض باستخدام setOnClickListener. مرّر lambda تُنفَّذ عندما ينقر المستخدم:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    binding = ActivityMainBinding.inflate(layoutInflater)
    setContentView(binding.root)

    var count = 0
    binding.btnIncrement.setOnClickListener {
        count++
        binding.tvCount.text = "Count: $count"
    }

    binding.btnReset.setOnClickListener {
        count = 0
        binding.tvCount.text = "Count: 0"
    }
}

قراءة إدخال EditText

احصل على النص الذي كتبه المستخدم باستخدام .text.toString():

  • binding.etName.text.toString() — يعيد النص الحالي كسلسلة String
  • احرص دائمًا على إزالة المسافات البيضاء: .trim()
  • تحقق من فراغ النص: استخدم .isBlank() أو .isEmpty()

مثال على EditText + Button

اقرأ الإدخال واعرضه عند النقر على زر:

binding.btnGreet.setOnClickListener {
    val name = binding.etName.text.toString().trim()

    if (name.isBlank()) {
        binding.tvResult.text = "Please enter your name"
        return@setOnClickListener
    }

    binding.tvResult.text = "Hello, $name!"
}

رسائل Toast

إن Toast رسالة منبثقة صغيرة تظهر لفترة وجيزة أسفل الشاشة. استخدمها لتقديم ملاحظات سريعة:

  • Toast.LENGTH_SHORT — نحو ثانيتين
  • Toast.LENGTH_LONG — نحو 3.5 ثوانٍ

مثال على Toast

اعرض Toast عند النقر على زر:

import android.widget.Toast

binding.btnSave.setOnClickListener {
    val input = binding.etEmail.text.toString().trim()

    if (input.contains("@")) {
        Toast.makeText(
            this,
            "Saved: $input",
            Toast.LENGTH_SHORT
        ).show()
    } else {
        Toast.makeText(
            this,
            "Invalid email address",
            Toast.LENGTH_LONG
        ).show()
    }
}

أنواع الإدخال ولوحة المفاتيح

عيّن السمة inputType في EditText لتحديد لوحة المفاتيح المقترحة:

  • textEmailAddress — يعرض مفتاح @
  • numberDecimal — لوحة مفاتيح رقمية
  • textPassword — يخفي الأحرف
  • phone — لوحة أرقام الهاتف

تحسّن أنواع الإدخال المناسبة تجربة المستخدم بدرجة كبيرة.

اختبار سريع

ما الطريقة التي تقرأ النص الحالي من EditText كسلسلة String؟

مراجعة: التعامل مع إدخال المستخدم

يمكن لتطبيقاتك الآن التفاعل مع المستخدمين:

  • فعّل ViewBinding للوصول الآمن للأنواع إلى طرق العرض
  • setOnClickListener { } — للاستجابة للنقرات
  • .text.toString().trim() — لقراءة إدخال EditText
  • Toast.makeText(...).show() — لعرض رسائل الملاحظات السريعة
  • inputType — لاقتراح لوحة المفاتيح المناسبة للمستخدمين

التالي: التنقل بين الشاشات باستخدام Intents.

الأسئلة الشائعة

هل درس «معالجة إدخال المستخدم» مجاني؟

نعم — نص درس «معالجة إدخال المستخدم» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Android Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Android Academy 7 دروس في المجموع.

ماذا ستتعلم في «معالجة إدخال المستخدم»؟

استجب لنقرات الأزرار، واقرأ النص من EditText، وتحقّق من صحة الإدخال، وقدّم ملاحظات للمستخدم باستخدام رسائل Toast. تتمرن على Android Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Android Academy؟

لا تُشترط خبرة سابقة. Android Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 7.

كم من الوقت يستغرق درس «معالجة إدخال المستخدم»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Android Academy هذا؟

نعم. كل درس في Android Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. بنية المشروع وملف البيان
  2. الأنشطة ودورة الحياة
  3. التخطيطات وطرق العرض
  4. معالجة إدخال المستخدم
  5. النوايا والتنقّل
  6. الأجزاء
  7. الأذونات وطلبات وقت التشغيل
← العودة إلى Android Academy