آموزش جاوا و اندروید

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

آموزش جاوا و اندروید

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

طبقه بندی موضوعی

۷ مطلب با موضوع «آموزش اندروید :: دیتا بایندینگ» ثبت شده است

لینک پروفایل مدیوم همونی که دیتا بایندینگ رو برای اندروید دولوپ کرده

داکیومنت های خیلی خوبی در مورد دیتا بایندینگ نوشته که اکثرا توی استک اور فلو رفرنس میدن

۰ نظر موافقین ۰ مخالفین ۰ ۱۸ دی ۹۹ ، ۲۰:۰۹
میم دال

اداپتر متدهای "onCreateViewHolder" و "onBindViewHolder" و همچنین کلاس داخلی ViewHolder تحت تاثیر قرار میگیرد. کد زیر اداپتر اپ انیمیشن رو نشون میده. تغییرات مشخص هستن.

۰ نظر موافقین ۰ مخالفین ۰ ۱۴ دی ۹۹ ، ۰۰:۱۷
میم دال

در دیتا بایندینگ میشه کالکشن ها، int و String و اینا رو هم استفاده کرد. برای استفاده از ArrayList باید پکیج لیست رو import کنیم. البته تعریف جنریک در XML سینتکس متفاوتی داره:

<data>

    <import type="java.util.List" />

    <import type="com.mimdal.bestcartoons.model.Cartoon" />

    <variable
        name="cartoons"
        type="List&lt;Cartoon&gt;" />

</data>

۰ نظر موافقین ۰ مخالفین ۰ ۱۳ دی ۹۹ ، ۲۳:۱۹
میم دال

برای اینکه لاجیک مربوط به کد توی XML بتونه برای ویو ست بشه، اتریبیوت های جدیدی برای ویو تعریف میکنیم و مقدار مورد نظر رو از طریق اونها در XML به ویو میدهیم. برای این کار از annotation 

@BindingAdapter()

استفاده میشه.

متدی که کاستوم setter ایجاد میکنه باید استاتیک بوده و ویوی مورد نظر که قراره اتریبیوت جدید برای اون تعریف شه، جز آرگومان هاش باشه. مثلا:

@BindingAdapter("loadImage")
public static void setImage(ImageView view, int id){
    view.setImageResource(id);
}

رشته ای که در پرانتز BindingAdapter نوشته میشه، اسم اتریبیوت هست. در متد بالا این اتریبیوت برای ImageViewها تعریف میشه و آرگومان دوم میگه که مقدار این اتریبیوت یک int هست.

نحوه استفاده از این اتریبیوت در ویوی ImageView:

app:loadImage="@{cartoon.image}"

۰ نظر موافقین ۰ مخالفین ۰ ۱۳ دی ۹۹ ، ۲۰:۲۰
میم دال

استفاده از دیتا بایندینگ راهیه که از شر findViewById اینا راحت شیم و کدنویسی رو کوتاه تر میکنه.

برای فعال سازی دیتا بایندینگ، در build.gradle کد هایلایت شده رو اضافه میکنیم:

۰ نظر موافقین ۰ مخالفین ۰ ۱۱ دی ۹۹ ، ۰۳:۲۷
میم دال