Data Binding C# là gì
Tổng quan về Data Binding Phần 1
Bài đăng này đã không được cập nhật trong 2 năm Show Khi lập trình Android có những lúc bạn mong ước rằng có cách nào đó có thể code Java ngay trên layout để có thể giảm tối thiểu các dòng code không cần thiết. Đặc biệt khi bạn cần hiển thị hàng trăm trường thông tin trên giao diện và bạn chán ngấy khi cứ phải findViewById() rồi mới có thể gán giá trị cho chúng. Và Data Binding Library là 1 thư viện hỗ trợ đắc lực cho vấn đề trên. Đây là 1 support library nên có thể sử dụng từ Andorid 2.1 (API 7+) trở lên. I. Tổng quanData binding là một thư viện hỗ trợ cho phép bạn liên kết các UI component trong layout với các nguồn dữ liệu trong ứng dụng của bạn bằng cách sử dụng định dạng khai báo thay vì lập trình II. Sử dụng thư viện Data Binding1. Enable data binding in your projectĐể sử dụng Data Binding trong ứng dụng của bạn, hãy thêm đoạn code sau vào file build.gradle
2. Data Binding trong Layout2.1 Khai báo data binding trong layout
Example:
Biến "user" trong dữ liệu mô tả một thuộc tính có thể được sử dụng trong layout này
Một lưu í nhỏ: Các biểu thức layout nên được giữ nhỏ và đơn giản, vì chúng không thể kiểm thử unit test và có hỗ trợ IDE hạn chế. Để đơn giản hóa các biểu thức trong layout, bạn có thể sử dụng các binding adapter 2.2 Khai báo data Object
3. Binding AdapterTrong android có cung cấp một số hàm binding Adapter cơ bản như onClick(), onLongClick() để giúp người dùng không cần phải định nghĩa lại những hàm, nhưng chúng ta cũng có thể custom thêm một số hàm sử dụng bindingAdapter để thuận tiện cho việc sử dụng trong project của bạn 3.1 Sử dụng Binding Adapter để set dữ liệu lên ViewMình có tạo ra 1 file BingdingUtils.java để định nghĩa các @BindingAdapter trong toàn project của mình.
Mình sẽ giới thiệu qua về file BindingUtils.Java
3.2 sử dụng BindingAdapter để set sự kiện lên ViewNgoài sử dụng @BindingAdapter để set dữ liệu cho View thì các bạn cũng có thể sử dụng @BindingAdapter để set các sự kiện trong Android Thường thì các View mặc định có sẵn của Android thì đều đã được cung cấp sẵn các @BindingAdapter nhằm phục vụ việc sử dụng được thuận tiện. Nhưng với 1 View mà bạn Custom thì sao, phần dưới đây mình sẽ hướng dẫn các bạn sử dụng @BindingAdapter để có thể binding được sự kiện của những Custom View.
3.3 Binding DataMột lớp ràng buộc sẽ được sinh ra cho mỗi file layout. Mặc định, tên của class đó được đặt dựa trên tên của layout sinh ra nó. Ví dụ tên layout là Activity_main.xml, thì tên lớp được tạo tương ứng là ActivityMainBinding. Lớp này giữ tất cả các liên kết từ các thuộc tính trong Layout (ví dụ: biến user) và cho biết cách gán giá trị cho các biểu thức liên kết. Phương pháp được đề xuất để tạo các liên kết là inflate với layout, như thể hiện trong ví dụ sau:
4. Dàng buộc dữ liệu hai chiềuOne way Data Binding (Ràng buộc dữ liệu một chiều) bạn có thể set giá trị trên thuộc tính đó và cài đặt một listener để phản ứng với tất cả những thay đổi của phần tử đó
Ký hiệu @ = {}, quan trọng bao gồm dấu "=", nhận các thay đổi dữ liệu cho thuộc tính và lắng nghe cập nhật của người dùng cùng một lúc.
Liên kết dữ liệu hai chiều bằng các thuộc tính tùy chỉnh Nền tảng cung cấp cho việc triển khai ràng buộc dữ liệu hai chiều (two way data binding) cho các thuộc tính hai chiều phổ biến nhất và người nghe thay đổi, mà bạn có thể sử dụng như một phần của ứng dụng. Nếu bạn muốn sử dụng liên kết dữ liệu hai chiều với các thuộc tính tùy chỉnh, bạn cần phải sử dụng annotation @InverseBindingAd Module và @InverseBindingMethod.
Bước 2 : Chú thích cho phương thức đọc gía trị từ View bằng cách sử dụng @InverseBindingAdapter
III. Tài liệu tham khảohttps://developer.android.com/topic/libraries/data-binding/ |