کتابخانه اتصال داده بخشی از Android Jetpack.
«کتابخانه اتصال داده» کتابخانه پشتیبانی است که به شما امکان میدهد مؤلفههای واسط کاربری را در چیدمانهایتان به منابع داده در برنامهتان بااستفاده از قالب توضیحی بهجای برنامهنویسی متصل کنید.
چیدمانها اغلب در فعالیتهایی با کد تعریف میشوند که روشهای چارچوب میانای کاربر را فراخوانی میکنند. برای مثال، کد زیر findViewById() را فراخوانی میکند تا ابزارک TextView را پیدا کند و آن را به ویژگی userName متغیر viewModel متصل کند:
کاتلین
findViewById<TextView>(R.id.sample_text).apply { text = viewModel.userName }
جاوا
TextView textView = findViewById(R.id.sample_text); textView.setText(viewModel.getUserName());
مثال زیر نحوه استفاده از «کتابخانه اتصال داده» را برای اختصاص دادن نوشتار
به ابزاره مستقیماً در فایل چیدمان نشان میدهد. با این کار دیگر نیازی به فراخوانی هیچکدام از
کدهای Java نشاندادهشده در بالا نیست. به استفاده از نحو @{} در عبارت تخصیص توجه کنید:
<TextView
android:text="@{viewmodel.userName}" />
اتصال مؤلفهها در فایل چیدمان به شما امکان میدهد بسیاری از فراخوانیهای چارچوب واسط کاربر را در فعالیتهایتان بردارید و آنها را سادهتر و نگهداریشان را آسانتر کنید. این کار همچنین میتواند عملکرد برنامهتان را بهبود بخشد و به جلوگیری از نشت حافظه و استثناهای اشارهگر تهی کمک کند.
استفاده از کتابخانه اتصال داده
از صفحههای زیر برای آشنایی با نحوه استفاده از «کتابخانه اتصال داده» در برنامههای Android خود استفاده کنید.
- شروع به کار
- با نحوه آماده کردن محیط توسعه نرمافزار برای کار با «کتابخانه اتصال داده»، ازجمله پشتیبانی از کد اتصال داده در Android Studio، آشنا شوید.
زبان عبارت به شما امکان میدهد عبارتهایی بنویسید که متغیرها را به نماها در چیدمان متصل میکند. «کتابخانه اتصال داده» بهطور خودکار کلاسهای موردنیاز برای اتصال نماها در چیدمان با اشیای داده شما را تولید میکند. این کتابخانه ویژگیهایی مانند وارد کردن، متغیرها، و شامل کردن را ارائه میدهد که میتوانید در چیدمانهایتان استفاده کنید.
این ویژگیهای کتابخانه بهطور یکپارچه با چیدمانهای موجود شما همزیستی دارند.
برای مثال، متغیرهای اتصالی که میتوانند در عبارتها استفاده شوند در داخل عنصر 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دردسترس شما هستند. برای مشاهده فهرست آداپتورهای اتصال رایج، آداپتورها را ببینید. همچنین میتوانید آداپتورهای سفارشی ایجاد کنید، همانطور که در مثال زیر نشان داده شده است:
کاتلین
@BindingAdapter("app:goneUnless") fun goneUnless(view: View, visible: Boolean) { view.visibility = if (visible) View.VISIBLE else View.GONE }
جاوا
@BindingAdapter("app:goneUnless") public static void goneUnless(View view, Boolean visible) { view.visibility = visible ? View.VISIBLE : View.GONE; }
- Bind layout views to Architecture Components
- «کتابخانه پشتیبانی Android» شامل مؤلفههای معماری است که میتوانید از آنها برای طراحی برنامههای قوی، قابلآزمایش، و قابلنگهداری استفاده کنید. میتوانید از «مؤلفههای معماری» با «کتابخانه اتصال داده» استفاده کنید تا توسعه رابط کاربریتان را بیشتر ساده کنید.
- ترابست دادههای دوطرفه
- «کتابخانه اتصال داده» از اتصال داده دوطرفه پشتیبانی میکند. نمادگذاری استفادهشده برای این نوع اتصال از توانایی دریافت تغییرات داده در یک ویژگی و همزمان گوش دادن به بهروزرسانیهای کاربر در آن ویژگی پشتیبانی میکند.
منابع بیشتر
برای کسب اطلاعات بیشتر درباره اتصال داده، به منابع تکمیلی زیر مراجعه کنید.
نمونهها
Codelabs
پستهای وبلاگ
توصیهشده برای شما
- توجه: وقتی جاوا اسکریپت خاموش باشد، نوشتار پیوند نمایش داده میشود
- آداپتورهای اتصال {:#binding-adapters}
- چیدمانها و عبارتهای اتصال
- کلاسهای اتصال تولیدشده {: #binding-classes}