دیتا بایندینگ در اندروید

دیتا بایندینگ در اندروید

توضیحات

یک کتابخونه که با استفاده ازش میتونید UI رو به داده های برنامه وصل کنید و view ها رو بدون نیاز به کد نویسی اپدیت کنید

با استفاده از کتابخونه ی دیتابایندینگ (Data Binding) در اندروید میتونیم UI رو به داده ها وصل کنید و به سادگی و با حداقل کد، ویو رو آپدیت کنیم در این مطلب به فعال سازی و پیاده سازی دیتابایندینگ در اندروید می پردازیم.

توجه

با اومدن جت پک کامپوز در اندروید، دیتابایندینگ یک کتابخونه ی قدیمی تر به حساب میاد؛ کسایی که دنبال شروع یادگیری برنامه نویسی اندروید هستن، بهتره شروع به یادگیری جت پک کامپوز (jetpack compose) در اندروید کنن.

فعال سازی دیتابایندینگ

درون پوشه ی app داخل فایل build.gradle داخل android بنویسید:

Root Project -> app -> build.gradle

android{

    ...

    buildFeatures{
    dataBinding true
    }

}
                        

پیاده سازی دیتابایندینگ

مثال:

فرض کنید یک کلاس داریم به اسم TestFragment و یک فایل xml به اسم fragment_test برای استفاده از دیتا بایندینگ سه مرحله رو باید انجام بدیم

مراحل استفاده از data binding در فایل xml

۱- ایجاد تگ layout:

این تگو باید قبل از هر تگ دیگه ای ایجاد کنیم.

۲- ایجاد و مقداردهی داده هایی که میخوایم view ها رو بهشون وصل کنیم

ابتدا متغیر(ها) رو مانند شکل بالا داخل تگ data تعریف میکنیم سپس داخل متد onCreateView مربوط به کلاس Fragment مانند زیر اونا رو مقدار دهی میکنیم:

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
):View {

    val binding = FragmentTestBinding.inflate(inflater, container ,false)

    binding.viewmodel = myViewModel

    return binding.root
}
                        

در قطعه کد بالا ابتدا با استفاده از کلاس FragmentTestBinding که خودکار ساخته شده فایل fragment_test.xml رو inflate کردیم سپس متغیر viewmodel رو که در فایل xml تعریف کرده بودیم صدا و مقداردهی کردیم در نهایت root که در اینجا LinearLayout هست رو برگردوندیم.

۳- وصل کردن view به داده ها

با استفاده از syntax ‎@{...} ویو رو به داده ها وصل میکنیم

تا اینجای کار با Data Binding آشنا شدیم یاد گرفتیم چطور باید فعالش کنیم و چطور ازش استفاده کنیم یه موضوع دیگه از Data Binding به اسم BindingAdapter هست که بعدا سر یه فرصت مناسب بهش میپردازیم 🌸🌸🌸

برای اطلاع از جدیدترین مطالب یا پرسش و پاسخ عضو کانال و گروه تلگرامی ما شوید.


میتونید در بهبود یا توسعه ی کد های سایت مشارکت کنید

arrow_drop_up
کپی شد!