حسام رسولیان
Data Binding

آموزش Data Binding در اندروید

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

از این روش در معماری MVVM اکثرا استفاده میشه و با معماری و کامپوننت هایی که گوگل معرفی کرده کاملا در تعامل هست.

برای شروع اول از همه ما باید قابلیت Data Binding و فعال کنیم برای این کار وارد گریدل میشیم و داخل تگ اندروید عبارت زیر را مینویسیم.

dataBinding {
enabled = true
}

حالا با هم دیگه یک کلاس میسازیم که دوتا فیلد داره و اطلاعات آبجکتی که از این کلاس میسازیم و داخل برنامه قصد داریم که نمایش بدیم.

public class User {
String name;
String email;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}
}

وارد فایل xml لایه میشیم در این قسمت چند نکته مهم وجود داره .
اول اینکه از هر نوع لایه ای که بخواید میتونید استفاده کنید ولی حتما لایه روت یا اصلی صفحه باید تگ layout باشه.


<!-- YOUR LAYOUT HERE -->


نکته دوم ما باید داخل همین لایه متغیری بسازیم از نوع همان کلاسی که درست کردیم. برای این کار داخل تگ layout از تگ variable استفاده می کنیم.

activity_main.xml
<!--?xml version="1.0" encoding="utf-8"?-->

مقدار name یک اسم دلخواه برای متغیر خودمون هست و type هم مسیر و اسم کلاس مورد نظر هست.
حالا برای این که به تکست ویو خودمون بتونیم مقدار اولیه بدیم از @{user.name} استفاده میکنیم. که به فیلد name در کلاس user در واقع اشاره میکنه با استفاده از متغیر user که در لایه تعریف کردیم.

حالا یکبار پروژه خودتون و حتما rebuild کنید تا کلاس مخصوص databinding براتون ساخته بشه.
وارد کلاس اکتیویتی بشید, در اینجا نیازی به استفاده از findViewById() دیگه نداریم.
از کلاس ActivityMainBinding استفاده میکنیم و یک آبجکت میسازیم, اسم این کلاس به اسم لایه xml شما بستگی داره چی باشه. سپس به آبجکت این کلاس یک آبجکت از کلاس User متصل میکنیم.

<style=”text-align: left;”=”” p=””>

public class MainActivity extends AppCompatActivity {

private User user;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// setContentView(R.layout.activity_main);

ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);

user = new User();
user.setName("Ravi Tamada");
user.setEmail("ravi@androidhive.info");

binding.setUser(user);
}
}

</style=”text-align:>

1 نظر

پیام بگذارید

چهار × 4 =