Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK
Code

Chỉ dẫn nhanh: Sử dụng Butter Knife để phân tích View trong Android

by
Difficulty:BeginnerLength:ShortLanguages:

Vietnamese (Tiếng Việt) translation by Dai Phong (you can also view the original English article)

Trong chỉ dẫn nhanh này, bạn sẽ tìm hiểu cách làm thế nào để tích hợp thư viện Butter Knife vào trong dự án của bạn để dễ dàng tạo đối tượng view của layout ở trong code của ứng dụng.

Giới thiệu

Trong mỗi ứng dụng Android, bạn phải sử dụng phương thức findViewById() cho mỗi view của layout mà bạn muốn sử dụng ở trong code của ứng dụng. Nhưng khi ứng dụng càng có nhiều layout phức tạp hơn, thì việc gọi đến phương thức này trở nên lặp đi lặp lại và đây là nơi mà thư viện Butter Knife phát huy tác dụng.

Thư viện Butter Knife, được phát triển và duy trì bởi Jake Wharton (Square Inc), có các chú thích giúp cho những nhà phát triển khởi tạo đối tượng view từ activity hoặc fragment của chúng ta. Nó cũng có các chú thích để xử lý các sự kiện như onClick(), onLongClick(), vv.

Trong dự án mẫu của hướng dẫn này, bạn có thể thấy một ứng dụng mẫu với một activity và một fragment với một cài đặt bằng cách sử dụng thư viện Butter Knife và cài đặt thông thường. Hãy khám phá các bước liên quan đến việc tích hợp thư viện Butter Knife.

1. Sử dụng thư viện Butter Knife

Bước 1: Thêm phụ thuộc

Thêm phụ thuộc sau vào tập tin build.gradle của dự án:

Tiếp theo, đồng bộ hóa dự án của bạn với các tập tin này bằng cách nhấn nút đồng bộ hóa.

Press the button to sync the project with the grade files

Bước 2: Sử dụng chú thích

Trong mọi activity hoặc fragment, bạn phải loại bỏ, hoặc chuyển thành comment dòng code mà gọi đến phương thức findViewById() và thêm chú thích @InjectView trước khi khai báo biến, xác định định danh của view.

Bước 3: Phân tích View

Trong phương thức onCreate() của activity, trước khi sử dụng bất kỳ view nào, hãy gọi inject trên đối tượng Butterknife.

Nếu bạn đang sử dụng fragment, bạn phải xác định nguồn của các view trong phương thức onCreateView() như hình dưới đây.

Bạn có thể bắt đầu bằng cách sử dụng các view trong code của ứng dụng. Butter Knife sẽ xử lý việc khởi tạo từng view cho bạn.

Đó là tất cả những gì bạn phải làm để sử dụng thư viện Butter Knife trong một activity hoặc fragment. Trong phần tiếp theo, tôi sẽ chỉ cho bạn cách làm thế nào để sử dụng thư viện Butter Knife cho việc sử dụng list view.

2. Sử dụng thư viện Butter Knife với List View

Lớp ListView là một trường hợp đặc biệt để cài đặt, bởi vì bạn khởi tạo các view ở bên trong một adapter. Để tích hợp thư viện Butter Knife trong một list view, trước tiên bạn phải tạo ra layout tuỳ biến cho các phần tử trong list view. Tôi sẽ đặt tên nó là list_view_item và thêm layout sau đây:

Trong layout đơn giản này, chúng ta sẽ hiển thị một hình ảnh và một số văn bản. Tiếp theo, chúng ta cần tạo ra adapter cho list view. Hãy đặt tên cho nó là ListViewAdapter.

Bên trong lớp cho adapter, có một lớp tĩnh được gọi là ViewHolder để giữ cho nó theo thứ tự. Chúng ta sẽ sử dụng lớp này để chứa các view. Hãy cài đặt lớp ViewHolder như sau:

Tất cả những gì chúng ta phải làm là thay đổi phương thức getView() như sau:

Trong phương thức này, tôi đang bung layout tuỳ biến vào trong biến view và sử dụng nó để tạo ra một đối tượng của lớp ViewHolder. Lưu ý rằng chúng ta đang sử dụng lớp Picasso để tải những tấm hình từ xa và gắn một số văn bản vào text view. Bạn có thể tìm thấy hướng dẫn hữ ích về Picasso nếu bạn muốn nắm rõ về thư viện này.

Đừng quên thêm Permission android.permission.Internet vào tập tin manifest của Android. Nếu không, Picasso sẽ không thể kết nối đến các trang web và tải hình ảnh từ xa.

Cuối cùng, tất cả những gì bạn phải làm là khởi tạo list view và gắn vào nó adapter. Tôi sẽ làm điều này trong một activity mới, ListViewActivity, như hình dưới đây. Bạn có thể thấy một ví dụ về cài đặt này trong các tập tin mã nguồn của hướng dẫn này.

3. Sự kiện

Bạn cũng có thể sử dụng các chú thích của Butter Knife cho các sự kiện. Chọn chú thích mà bạn muốn sử dụng, tuỳ theo sự kiện mà bạn muốn phản hồi, và đặt nó trước phương thức mà bạn muốn thực hiện khi xảy ra sự kiện.

Kết luận

Bạn có thể sử dụng phương thức inject() của Butter Knife ở bất cứ nơi nào nếu bạn không muốn sử dụng phương thức findViewById() để tiết kiệm thời gian và tránh trùng lặp code khi bạn khởi tạo các view trong layout. Đừng ngại chia sẻ chỉ dẫn nhanh này nếu bạn thấy nó hữu ích.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.