آموزش Data Binding در برنامه نویسی اندروید
سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش Data Binding در برنامه نویسی اندروید می پردازیم قبلا Data Binding را توضیح دادیم در این آموزش به نحوه استفاده از Data Bining در برنامه نویسی اندروید می پردازیم در ادامه با ما همراه باشید و اینکه برای استفاده از data binding نیازمند هیچگونه کتاب خانه خاصی نیستید و data binding توسط اندروید منتشر شده است و می توان از آن استفاده کرد.
Data Binding چیست ؟
حالا ابتدا باید data binding را در اندروید فعال کنیم برای اینکار وارد فایل Build.gradle از نوع Module شده سپس باید یک تگ برای آن همانند زیر تعریف کنید و آن را به گونه ای فعال کنید.
1 2 3 4 5 6 | android { ... dataBinding { enabled = true } } |
در بالا در تگ اندروید باید dataBinding اضافه شود و true شود تا قابل استفاده باشد.
خب حالا باید یک کلاس Model برای dataBinding ایجاد کنیم (کل کار توسط این کلاس انجام می شود.)
پس یک کلاس Model به نام PersonVO ایجاد کنید و کدهای زیر را در آن قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | public class PersonVO { private String name; private String occupation; public PersonVO(String name, String occupation) { this.name = name; this.occupation = occupation; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getOccupation() { return occupation; } public void setOccupation(String occupation) { this.occupation = occupation; } } |
در بالا ما یکسری getter و setter داریم و یک Constructor اصلی که داده ها به آن پاس داده می شود و سپس نوسط Getter و Setter قابل دسترسی است (قبلا کلاس Data Model را توضیح دادیم در سایت جستجو کنید)
یک layout داریم به نام activity_main.xml و کدهای زی را در آن قرار می دهیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <!--Step 1--> <data> <!--Step 2--> <variable name="personVO" type="ir.programchi.PersonVO" /> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="16dp" tools:context=".MainActivity"> <!--Step 3--> <TextView android:id="@+id/text_view_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{personVO.name}" android:textColor="@android:color/black" android:textSize="24sp" /> <TextView android:id="@+id/text_view_occupation" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{personVO.occupation}" android:textColor="@android:color/black" android:textSize="16sp" /> </LinearLayout> </layout> |
توضیح کلی کد بالا اول اینکه باید یک لایه به نام layout برای کل برنامه در نظر بگیریم (برای binding حتما لازم است و دوم اینکه id های قرار داده شده استفاده نمی شود) دومین قسمت بخش data هست که باید نام و آدرس Model ساخته شده را قرار دهید بخش سوم استفاده از فرمت زیر بای setText به صورت داینامیک
1 2 | android:text="@{personVO.name}" android:text="@{personVO.occupation}" |
در بالا دو مقدار name و occupation در getter و setter ما قبلا تعریف شده است.
در نهایت کد مربوط به MainActivity.java همانند زیر خواهد بود.
1 2 3 4 5 6 7 8 9 | public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main); PersonVO personVO = new PersonVO("Elon Musk", "Entrepreneur, Engineer, Inventor, Investor"); binding.setPersonVO(personVO); } } |
در بالا ابتدا باید DataBindingUtil را استفاده کنیم و دقت کنید که باید setContentView توسط این کد انجام شود نه به صورت معمول و در نهایت یک Model از کلاس POJO یا کلاس Model که قبلا درست کردیم ساخته و داده ها را به آن پاس می دهیم در نهایت آن را Bind می کنیم.
این آموزش هم به پایان رسید.
موفق و پیروز باشید.