Một thư viện rất đáng giá mà Android M sở hữu: thư viện Data Binding. Thư viện giúp các lập trình viên không phải viết quá nhiều code để “ghép dữ liệu” vào các component trên file layout XML nữa.
Nếu bạn nào đã từng lập trình web thì có thể nôm na hiểu thư viện này giống với AngularJS. Chúng ta có các “layout template” với “data holder”, giờ chỉ cần định nghĩa nguồn dữ liệu, tự chúng sẽ hiển thị theo data tương ứng (mô hình MVVM).
Nếu trước kia để bind dữ liệu vào component, chúng ta sẽ phải làm 2 bước:
//bind component vào 1 biến
txtHello = (TextView) findViewById(R.id.txtHello);
//bind data vào biến để rồi component sẽ thay đổi data hiển thị tương ứng.
txtHello.setText(“Hello, how are you?”);
Còn bây giờ? Hãy xem một ví dụ đơn giản để hiểu thư viện này hoạt động thế nào?
1. Cài đặt Android M SDK (v23) và Android Studio 1.3
Để sử dụng được thư viện Data Binding, bạn cần phải thỏa mãn 3 điều kiện sau:
2. Kickoff dự án demo:
Source code demo được dựa trên help chính thức của google: https://developer.android.com/tools/data-binding/guide.html.
Gồm 2 bước + 5 dòng code:
Bước 2.1: Include thư viện Data Library vào trong hệ thống.
Bước 2.2: Sử dụng thẻ data trong file layout xml
+ add namespace in xml layout
<layout xmlns:android="http://schemas.android.com/apk/res/android">
+ tạo 1 class POJO (entity)
public class User {
private final String firstName;
public User(String firstName) {
this.firstName = firstName;
}
public String getFirstName() {
return this.firstName;
}
}
+ thêm thẻ data vào layout
<data>
<variable name="user" type="com.n9xkun.iziroi.databinding.pojo.User"/>
</data>
+ setup data_holder trong file layout
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView android:layout_width="wrap_content"
android:layout_height="50dp"
android:text="@{user.firstName}"/>
</LinearLayout>
+ tạo 1 entity và chạy xem kết quả
Object binding = DataBindingUtil.setContentView(this, R.layout.activity_simple_binding);
ActivitySimpleBindingBinding binder = (ActivitySimpleBindingBinding) binding;
User user = new User("Test User 1");
binder.setUser(user);
Quá đơn giản phải không nhỉ? Chúng ta sẽ không thấy các câu lệnh findViewById và setXXX nữa. Chỉ cần nguồn dữ liệu, tự động data_binding sẽ bind dữ liệu đó cho các component. Ngoài support kiểu POJO đơn giản, Data Binding support hàng loạt case khác nhau như:
Mình sẽ post toàn bộ các video cho Android M trong crash course “Android M có gì hay”. Bài viết sau chúng ta sẽ cùng nghía qua API cho hệ thống permission mới trong Android M nhé.
Các bạn có thể download source code ở đây: https://github.com/hoangpt/blog/tree/master/android/DataBinding_DemoApp
Bình luận