Bài 8: ListView & Binding

4,173 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
4,173
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
70
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Bài 8: ListView & Binding

  1. 1. ANDROID APPLICATION DEVELOPMENT ListView & Bindinghoccungdoanhnghiep.com
  2. 2. Nội dung ListView Binding data to ListViewhoccungdoanhnghiep.com
  3. 3. ListView Có khả năng hiển thị 1 danh sách các item Người dùng có thể cuộn lên/xuống để duyệt qua các item này ListView nhận dữ liệu truyền vào từ Adapter Adapter quy định mỗi row trong list hiển thị như thế nào Adapter được gán qua phương thức setAdapter của listview obj, hoặc setListAdapter ở ListActivityhoccungdoanhnghiep.com
  4. 4. Basic ListView Khởi tạo 1 layout để mô tả content của 1 row trong list view muốn hiển thị: /res/layout/listnotes_item.xml Activity hiển thị listview sẽ được extends từ class ListActivity Để kết nối từ listview - layout - nội dung hiển thị, sẽ cần lớp Adapter:  Khởi tạo array các string muốn đưa vào list: String[]  new ArrayAdapter<String>(this, layout, String[]);  gán vào listview: setListAdapterhoccungdoanhnghiep.com
  5. 5. Các loại Adapter cho ListView BaseAdapter: lớp common chứa các phương thức để gán data cho ListView hoặc spinner  ArrayAdapter: Thường dụng để xử lý các loại content dạng Array hoặc List  SimpleCursorAdapter: chuyên sử dụng để handle các loại data liên quan đến cursor lấy được từ sqlite dbhoccungdoanhnghiep.com
  6. 6. Custom Adapter Để tùy biến các adapter theo ý muốn, ta thừa kế lớp tương ứng. Ở trong ví dụ này: public class NoteCursorAdapter extends SimpleCursorAdapter Khởi tạo layout dành riêng cho item trong list: /res/layout/ note_item.xml Trong class NoteCursorAdapter:  Khai báo constructor: public NoteCursorAdapter(Context context, Cursor cursor, String[] from, int[] to)  Khai báo nested static class ItemViewHolder chứa các thành phần của 1 item trong list. Class này sẽ giữ lại các thành phần của layout khi bind data tương ứng vào  Override hàm: public View getView(int position, View convertView, ViewGroup parent)  Trong hàm này, set up các thành phần tương ứng cho item trong list để hiển thị hoccungdoanhnghiep.com
  7. 7. Các thành phần có thể tùy biến nhờ custom Adapter Layout cho mỗi item bên trong list view Event tương ứng với các subview của layout- itemhoccungdoanhnghiep.com
  8. 8. Xử lý sự kiện cho ListView ListView thường được bắt sự kiện setOnItemClickListener để handle mỗi khi người dùng click vào row trong list Để bắt được sự kiện này, trong layout của item, các subview mà có khả năng focusable phải set thành false:  android:focusable="false" android:focusableInTouchMode="false"  Các subview gồm: ImageView, ImageButton, Button,…hoccungdoanhnghiep.com
  9. 9. Bài tập về nhàhoccungdoanhnghiep.com
  10. 10. Tham khảo  http://www.vogella.com/articles/AndroidListView/article.htm  API Demo app  http://www.youtube.com/watch?v=DHXGk8KHC7I  http://www.softwarepassion.com/android-series-custom-lishoccungdoanhnghiep.com

×