مكتبة ربط البيانات جزء من Android Jetpack.

"مكتبة ربط البيانات" هي مكتبة دعم تسمح لك بربط مكونات واجهة المستخدم في تنسيقاتك بمصادر البيانات في تطبيقك باستخدام تنسيق تعريفي بدلاً من استخدام تنسيق آلي.

غالبًا ما يتم تحديد التخطيطات في الأنشطة باستخدام التعليمات البرمجية التي تستدعي طرق إطار عمل واجهة المستخدم. على سبيل المثال، يستدعي الرمز البرمجي أدناه findViewById() للعثور على التطبيق المصغّر TextView وربطه بالسمة userName الخاصة بالمتغيّر viewModel:

Kotlin

findViewById<TextView>(R.id.sample_text).apply {
    text = viewModel.userName
}

Java

TextView textView = findViewById(R.id.sample_text);
textView.setText(viewModel.getUserName());

يوضح المثال التالي كيفية استخدام مكتبة ربط البيانات لتعيين نص للأداة مباشرةً في ملف التنسيق. يؤدي ذلك إلى عدم الحاجة إلى استدعاء أي من أكواد Java الموضحة أعلاه. لاحظ استخدام بنية @{} في تعبير المهمة:

<TextView
    android:text="@{viewmodel.userName}" />

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

استخدام مكتبة ربط البيانات

استخدم الصفحات التالية لمعرفة كيفية استخدام "مكتبة ربط البيانات" في تطبيقات Android الخاصة بك.

البدء
تعرَّف على كيفية تجهيز بيئة التطوير للعمل باستخدام "مكتبة ربط البيانات"، بما في ذلك إتاحة استخدام رمز ربط البيانات في "استوديو Android".

التنسيقات وتعبيرات الربط

تتيح لك لغة التعبير كتابة تعبيرات تربط المتغيّرات بطرق العرض في التنسيق. تنشئ "مكتبة ربط البيانات" تلقائيًا الفئات المطلوبة لربط طرق العرض في التنسيق بكائنات البيانات. توفّر المكتبة ميزات مثل عمليات الاستيراد والمتغيّرات والأنواع التي يمكنك استخدامها في التنسيقات.

تتعايش ميزات المكتبة هذه بسلاسة مع التخطيطات الحالية. على سبيل المثال، يتم تحديد متغيّرات الربط التي يمكن استخدامها في التعبيرات داخل عنصر data يمثّل عنصرًا أساسيًا للعنصر الجذر لتنسيق واجهة المستخدم. يتم تضمين كلا العنصرَين في علامة layout، كما هو موضّح في المثال التالي:

<layout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto">
    <data>
        <variable
            name="viewmodel"
            type="com.myapp.data.ViewModel" />
    </data>
    <ConstraintLayout... /> <!-- UI layout's root element -->
</layout>

استخدام عناصر البيانات القابلة للتتبّع
توفّر "مكتبة ربط البيانات" فئات وطرقًا لرصد البيانات بسهولة للاطّلاع على التغييرات. لا داعي للقلق بشأن تحديث واجهة المستخدم عند تغيير مصدر البيانات الأساسي. يمكنك جعل المتغيرات أو خصائصها قابلة للملاحظة. تسمح لك المكتبة بجعل العناصر أو الحقول أو المجموعات قابلة للملاحظة.
فئات الربط التي تم إنشاؤها
تُنشئ "مكتبة ربط البيانات" فئات ربط يتم استخدامها للوصول إلى متغيرات التنسيق وطرق العرض. توضّح لك هذه الصفحة كيفية استخدام وتخصيص فئات الربط التي تم إنشاؤها.
محوِّلات الربط
لكل تعبير تنسيق، يتوفّر محوِّل ربط يُجري طلبات إطار العمل المطلوبة لضبط السمات أو أدوات معالجة البيانات المقابلة. على سبيل المثال، بإمكان محوِّل الربط طلب الإجراء setText() لضبط سمة النص، أو استدعاء الطريقة setOnClickListener() لإضافة مستمع إلى الحدث الناتج عن النقر. إنّ أكثر محوّلات الربط شيوعًا، مثل محوّلات السمة android:text المستخدَمة في الأمثلة الواردة في هذه الصفحة، متاحة لك لاستخدامها في حزمة android.databinding.adapters. للاطّلاع على قائمة بمحوّلات الربط الشائعة، يمكنك مراجعة محوّلات. يمكنك أيضًا إنشاء محوِّلات مخصّصة، كما هو موضَّح في المثال التالي:

Kotlin

@BindingAdapter("app:goneUnless")
fun goneUnless(view: View, visible: Boolean) {
    view.visibility = if (visible) View.VISIBLE else View.GONE
}

Java

@BindingAdapter("app:goneUnless")
public static void goneUnless(View view, Boolean visible) {
    view.visibility = visible ? View.VISIBLE : View.GONE;
}

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

مراجع إضافية

لمعرفة المزيد حول ربط البيانات، راجع الموارد الإضافية التالية.

عيّنات

الدروس التطبيقية حول الترميز

مشاركات المدونة