Sử dụng List View trong Android

1351

Giới thiệu

Trong hầu hết ứng dụng Android đều có sử dụng ListView. Vậy ListView là gì mà nó lại quan trọng như vậy. Đơn giản ListView là một View dùng để chứa các View dưới dạng danh sách (list). Ví dụ chúng ta có thể thấy là New Feeds trên facebook của bạn cũng sử dụng ListView hay đơn giản hơn là danh sách danh bạ trong máy của bạn. Trong loạt bài viết hướng dẫn về ListView tôi sẽ cùng cách bạn đi từ ListView cơ bản tới ListView nâng cao.

Tổng quan về ListView

ListView là một ViewGroup sắp xếp các View con trong nó dưới dạng danh sáchmà chúng ta có thể scroll. ListView trong Android chỉ hổ trợ danh sách dọc Vertical, không hổ trợ danh danh sách ngang horizontal.

Để sử dụng ListView chúng ta cần các thành phần như sau:

listview-trong-android

+ DataSource: chính là data mà chúng ta sử dụng để binding lên ListView.

+Adapter: là thành phần gắn kết DataSource với AdapterView. Là một thành phần rất quan trọng khi bạn sử dụng ListView. Performance của ListView phụ thuộc vào các mà bạn sử dụng Adapter như thế nào.

Adapter (Các Adapter thường dùng là ArrayAdapter, CursorAdapter) có nhiệm vụ gắn kết từng item trong DataSource với từng row trong AdapterView.

+ AdapterView: Là ViewGroup. AdapterView có các lớp con là ListView, GridView hay Spinner.

Sử dụng ListView cơ bản

Tiếp theo chúng ta sẽ cùng nhau tìm hiểu cách sử dụng ListView cơ bản nhất. Đó là ListView có các row hiển thị text.

Tạo project có tên là ListViewBasic.

Trong file activity_layout.xml tôi định nghĩa ListView như sau:

 

MainActivity.java

 

Bước 1: Chúng ta cần tạo Data để có thể gán vào ListView. Ở đây tôi tạo 100 item kiểu String để gắn vào ListView.

Bước 2: Tạo ArrayAdapter với 3 thông số truyền vào là:

Đối số thứ nhất: Chính là Context ở đây do tôi đang đứng ở Activity nên truyền vào this.

Đối số thứ hai: Chính là file layout định nghĩa giao diện từng row trong ListView.

simple_list_item_1.xml là file được định nghĩa sẵn trong android

Bước 3: Tiến hành setAdapter vừa tạo cho ListView

Tiến hành chạy thử chúng ta sẽ thấy kết quả như sau:

listview-trong-android

Các event thường dùng với ListView

ListView cung cấp cho chúng ta một số event dưới như dưới đây:

Listener khi người dùng click vào 1 item trên Listview.

 

Listener khi người dùng nhấn giữ vào 1 item trên ListView

Listener cung cung cấp các thông tin khi bạn scroll ListView