Tìm hiểu Data Binding trong Android
Android Databinding

Tìm hiểu Data Binding trong Android

Thư viện Data Binding trong Android cung cấp cho người dùng khả năng kết nối dữ liệu giữa data sources và các controllers trên layout ứng dụng. Là một trong những thư viện hữu ích sáng giá đắc lực được cung cấp trong bộ thư viện Android Architecture Components. Sử dụng Data Binding giúp cho việc phân tách data source với thành phần giao diện trong các mẫu thiết kế triệt để hơn. Từ đó, với thư viện này, bạn viết ít code hơn, cấu trúc project dễ kiểm thử, dễ bảo trì hơn.

Thư viện Data Binding
Thư viện Data Binding

Thông thường nếu không sử dụng kỹ thuật data binding chúng ta cần phải xác định được đối tượng trên layout cần liên kết với dữ liệu bằng phương thức findViewById(id)

/**
* JAVA CODE
**/
TextView textView = findViewById(R.id.sample_text);
textView.setText(viewModel.getUserName());

/**
* Kotlin
**/
findViewById<TextView>(R.id.sample_text).apply {
    text = viewModel.userName
}

Sau khi tìm kiếm được đối tượng cần liên kết với data source, chúng ta mới có thể fill được dữ liệu lên đối tượng này. Nhưng với Data Binding thì khác, đoạn mã triển khai ngắn gọn hơn, đối tượng liên kết data hiệu quả hơn. Ví dụ sau đây cho thấy cách sử dụng thư viện liên kết dữ liệu để gán văn bản cho widget trực tiếp trong tệp bố cục. Điều này loại bỏ sự cần thiết phải gọi bất kỳ mã Java/Kotlin nào được hiển thị ở trên. Lưu ý việc sử dụng @{}cú pháp trong biểu thức gán:

<TextView android:text="@{viewmodel.userName}" />

Các thành phần liên kết trong tệp bố cục cho phép bạn loại bỏ nhiều lời gọi xác định thành phần UI trong các hoạt động của mình, làm cho chúng đơn giản hơn và dễ bảo trì hơn. Điều này cũng có thể cải thiện hiệu suất của ứng dụng của bạn và giúp ngăn chặn rò rỉ bộ nhớ(memory leaks ) và ngoại lệ con trỏ null (null pointer exceptions.).

Cài đặt Data Binding

Để có thể sử dụng được Data Binding, bạn cần đảm bảo project của mình đáp ứng các yêu cầu sau:

  1. Thư viện liên kết dữ liệu cung cấp cả tính linh hoạt và khả năng tương thích rộng rãi Đây là thư viện hỗ trợ, do đó bạn có thể sử dụng nó với các thiết bị chạy Android 4.0 (API cấp 14) trở lên.
  2. Bạn nên sử dụng Plugin Android mới nhất cho Gradle trong dự án của bạn. Tuy nhiên, ràng buộc dữ liệu được hỗ trợ trên phiên bản 1.5.0 trở lên

Để định cấu hình ứng dụng của bạn để sử dụng liên kết dữ liệu, hãy thêm phần tử dataBindingvào tập tin build.gradle mô-đun ứng dụng, như trong ví dụ sau:

android {
    ...
    dataBinding {
        enabled = true
    }
}

Bấm Sync Now sau khi thay đổi cập nhật file build.gradle.

Khai báo và sử dụng Data Binding trên layout bằng biểu thức ràng buộc.

Ngôn ngữ biểu thức cho phép bạn viết các biểu thức kết nối các biến với các layout trong bố cục. Thư viện liên kết dữ liệu tự động tạo các lớp cần thiết để liên kết các khung nhìn trong bố cục với các đối tượng dữ liệu của bạn. Thư viện cung cấp các tính năng như import, variable, include …

Nói một cách đơn giản, bạn cần tạo 1 đoạn mã khai báo cho layout biết rõ sẽ dữ liệu sẽ được liên kết thông qua thẻ khai báo data.

<layout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto">
    <data>
        <variable
            name="viewmodel"
            type="com.myapp.data.ViewModel" />
    </data>
    <ConstraintLayout... /> <!-- UI layout's root element -->
</layout>

Như ví dụ trên, chúng ta đang khai báo 1 biến viewmodel có kiểu dữ liệu ViewModel.

Tag layout sẽ phải là tag root bao bọc toàn bộ các tags còn lại. Bạn cần phải Clean Project và Build Project một lần đề Android Studio tự tạo 1 class Binding.

Trả lời

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.

Close Menu
×
×

Cart