[Android Nâng Cao] Data binding trong Android – P1

Hi các em, trong bài ngày hôm nay, thầy giới thiệu tới các em khái niệm Data binding trong lập trình Android

Data binding là gì ?

Data binding là thư viện hỗ trợ dành cho lập trình viên mong muốn truyền dữ liệu trực tiếp vào file layout xml thay vì câu lệnh hiển thị thông thường

Ví dụ : khi muốn hiển thị dữ liệu lên đối tượng TextView, ta viết như sau :

TextView textView = findViewById(R.id.sample_text);
textView.setText(user.getUserName());

Nhưng nếu sử dụng Data binding thì được viết là :

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

Như vậy, với cách viết này dữ liệu được gán trực tiếp với đối tượng TextView trên file xml, câu lệnh ngắn gọn hơn, dễ dàng thay đổi về sau và đặc biệt tránh được lỗi NullPointerException trên đối tượng TextView đồng thời cách này cũng loại bỏ câu lệnh thần thánh findViewById 😀

Để tích hợp và sử dụng Data Binding chúng ta làm theo các bước sau :

Bước 1 : Thêm thư viện Data binding bằng cách thêm đoạn code sau vào file build.gradle ( app module ):

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

Bước 2 : Khai báo thẻ data binding trong file xml, trong ví dụ này thầy khai báo 1 model là User . có chứa 2 trường username, email và tích hợp vào file layout mới

Bước 3 : thay thế câu lệnh setContentView bằng câu lệnh AcitvityMainBinding mới để set file layout activity_main.

Nếu sử dụng với Fragment câu lệnh sẽ khác 1 chút, các em xem code mẫu ở hình sau :

Kết quả :

Như vậy, thầy đã giới thiệu tới các em cách sử dụng Data binding đơn giản trong lập trình Android. Ngoài cách trên các em có thể tự thực hành Data binding với ArrayList, RecyclerView để nắm rõ hơn. Trong các bài tiếp theo, thầy cũng sẽ bổ sung các kĩ thuật khách với Data Binding như : ” Two-way data binding“, Binding adapters ” , “Work with observable data objects ” . Mọi câu hỏi, thắc mắc các em gửi về email dotplays.com@gmail.com hoặc nhóm học lập trình Android nhé. 🙂

Code mẫu : https://github.com/huuhuybn/DataBinding