Bài 17: ListView trong Android

Đây là một view kinh điển trong lập trình android đấy các bạn, sau này mình sẽ hướng dẫn các bạn về thằng RecyclerView mới được thêm vào từ android Lolipop 5.0 nó mạnh mẽ hơn ListView nhưng không phải trường hợp nào cũng dùng nó.

ListView có thể nó nó là view huyền thoại dùng sau này có dùng đến hay không thì bạn cũng phải biết qua nó bởi vì cách sử dụng, cách custom nó tương tự ở các view khác thôi.

Mình nhớ lúc trước mình học Android thì đây là phần khó hiểu nhất khi mình học, học mãi vẫn không hiểu với không nhớ nhưng học lập trình là vậy nếu không hiểu cứ code theo người ta, bạn code thử 10 lần coi rồi thuộc luôn là tự nhiên nó hiểu, vì sao hiểu thì chúa mới biết thôi :D.

Phần này nếu bài viết bạn không hiểu phải xem thêm video nhé, với ai mới học android thì khó nhai lắm đó nghe :'(

Ok bây giờ chúng ta sẽ bắt tay vào học thằng này, mình sẽ giải thích thật kĩ cho các bạn hi vọng bạn sẽ hiểu, bài này chưa khó bằng bài sau đâu.

ListView là gì?

Đây là 1 view Group nhé các bạn, nó dùng để hiển thị danh sách các đối tượng nào đó trong Android theo chiều dọc từ trên xuống và sử dụng Adapter để làm cầu nối đưa dữ liệu lên.

Cở bản về layout ListView bạn sẽ không có gì có gì tuỳ chỉnh hết, mà tất cả bạn sẽ handle ở code Java.Bây giờ bạn sẽ xem qua 1 ví dụ về listView đơn giản nhất như sau:

ListView trong lập trình Android

ListView trong lập trình Android

Ở trên là một danh sách các số điện thoại mình tạo từ một mảng vào bỏ lên listview, bây giờ mình sẽ đi sâu vào code tìm hiểu nhé.Đây là file layout không có cái gì đặc sắc cả:


Và đây là đoạn code Java xử lý dữ liệu đưa lên ListView:


Nhìn qua thì nó đơn giản đúng không nào, y chang bài Bài 14: Spinner mình đã hướng dẫn các bạn luôn, đa phần muốn hiển thị được dữ liệu lên cách view dạng dang sách các bạn đều phải thông qua Adapter hết nhé.

Ở trên mình tạo một mảng String là danh sách các số điện thoại như sau:


Cái này thuộc về Java nên chắc mn đã biết rồi chứ đúng không? tại sao mình tạo mảng String bởi vì hiện tại thằng ArrayAdaper mình dùng là truyền vào một đối tượng ở đây là 1 mảng String, bạn xem code:


context: chính là activity/fragment hiện tại

resource: đây là giao diện listview sẽ hiển thị ra, bên trong ví dụ mình đang hiển thị giao diện mặc đinh của thư viện Android cung cấp, nó chỉ có 1 dòng để hiển thị số điện thoại.Trong trường hợp bạn muốn có Avatar bên số điện thoại rồi icon xoá, favorite… thì bắt buộc bạn phải tự tạo và custom lại và ở bài sau sẽ học cái này.

List<T> objects: đây là kiểu Generic trong java, ở đây mình truyền vào một mảng String số điện thoại để hiển thị lên từng item listView.


Ở bước trên có ý nghĩa là bạn đã dùng Adapter để chưa data nhằm đưa lên ListView nó mới hiểu, bây giờ bạn chỉ cần gọi phương thức setAdapter() cho listview là xong:


Như vậy là bạn đã tạo xong một ListView rồi đó, mình nói nó khó nhưng ở ví dụ trên rất dễ đúng không nào, còn dễ hơn cả Spinner nữa.Tuy nhiên ở phần sau mình sẽ hướng dẫn phần custom listview bạn sẽ thấy nó khó hơn tí và mình sẽ có thêm bài thực hành cho các bạn nắm rõ hơnn nữa.

Không biết mọi người có ai thắc mắc custom listview là gì không nhỉ? nếu có bạn nhìn xuống ảnh bên dưới đây:

Custom listview trong android

Custom listview trong android

Ở ví dụ đầu bài chúng ra chỉ làm listview chứa số điện thoại nhưng nếu bạn muốn nó có hình ảnh, tên danh bạ nữa thì sao.Bạn không thể sử dụng giao diện mặc định của android như android.R.layout.simple_list_item_1 , mà bạn phải tạo 1 file layout theo ý bạn và custom Adapter lại.Tất cả sẽ có trong bài tiếp theo nhé.

Video hướng dẫn sử dụng listview android

Tải source code

Mọi ý kiến thắc mắc xin các bạn cứ comment bên dưới blog để mình giải đáp.Xin cảm ơn!

Xem thêm

Bài 17: ListView trong Android
5 (100%) 3 votes

2 Comments

  1. Hải November 15, 2016
    • trangchongcheng November 20, 2016

Add Comment

*