Android

ListView trong Android Phần 1

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.

Video demo ListView:

 

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

listview_basic_1

+ 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:

File MainActivity.java

Tôi sẽ giải thích dễ hiểu như dưới đây:

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 SDK và có nội dung như sau:

Chúng ta thấy rằng mỗi row trong ListView sử dụng cho Adapter ở trên chính là một TextView mà thôi, từng item trong data sẽ được lấy ra là setText vào TextView này.

Đối số thứ ba chính là data mà chúng ta đã tạo ở trên.

ArrayAdapter này có nhiệm vụ là sẽ get từng item trong data và gắn data này vào các row. (Sẽ nói chi tiết ở bài sau).

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-phan1_0

Các bạn thử kéo lên kéo xuống hay nói cách khác là scroll sẽ thấy đúng 100 item giống như data mà chúng ta đã tạo.

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

scrollState được gửi qua method onScrollStateChanged gồm các giá trị có các ý nghĩa như dưới đây.

Source code đầy đủ file MainActivity.java

Thử chạy lại ứng dụng và xem kết quả như thế nào nhé!

Source code ListViewBasic.

Kết luận

Thông qua bài viết này tôi đã giới thiệu cho các bạn cách sử dụng ListView một cách cở bản. Qua những bài viết sau chúng ta sẽ cùng nhau tìm hiểu sâu về ListView cũng như cơ chế hoạt động của nó. Nếu có bất cứ thắc mắc nào trong bài viết này vui lòng để lại bình luận ở phía dưới bài viết hoặc có thể liên lạc quan fanpage Eitguide để được giải đáp.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.