http://vietjack.com/android/index.jsp Copyright © vietjack.com List View Android ListView Android view mà nhóm số item hiển thị chúng danh sách theo chiều dọc scroll Các item danh sách tự động chèn vào danh sách sử dụng Adapter mà kéo nội dung từ nguồn mảng sở liệu http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 1 http://vietjack.com/android/index.jsp Copyright © vietjack.com LIST VIEW Một Adapter thực cầu nối thành phần UI nguồn liệu mà điền liệu vào thành phần UI Adapter giữ liệu gửi liệu tới Adapter View, từ view lấy liệu từ Adapter View hiển thị liệu view khác dạng Spinner, List View, Grid View, … ListViewvà GridView lớp AdapterView Gắn kết chúng với mộtAdapter, mà thu nhận liệu từ nguồn ngoại vi tạo View để biểu diễn entry Android cung cấp số lớp hữu ích lớp Adapter để thu lấy kiểu liệu khác xây dựng view cho AdapterView (ví dụ ListView GridView) Các Adapter phổ biến làArrayAdapter,Base Adapter, CursorAdapter,SimpleCursorAdapter,SpinnerAdapter WrapperListAdapte r Các thuộc tính ListView Android Dưới số thuộc tính riêng cho ListView: − Attribute Miêu tả android:id Đây ID mà nhận diện Layout android:divider Đây drawable color để vẽ item danh sách android:dividerHeight Xác định chiều cao divider Nó px, dp, sp, in, mm android:entries Xác định tham chiếu tới array resource mà đưa đến ListView android:footerDividersEnabled Khi thiết lập false, ListView không vẽ divider trước footer view Giá trị mặc định true android:headerDividersEnabled Khi thiết lập false, ListView khơng vẽ divider sau header view Giá trị mặc định true http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 1 http://vietjack.com/android/index.jsp Copyright © vietjack.com ArrayAdapter Android Bạn sử dụng Adapter nguồn liệu mảng Theo mặc định, ArrayAdapter tạo view cho item mảng việc gọi toString() item đặt nội dung vào TextView Giả sử bạn có mảng chuỗi muốn hiển thị ListView, bạn khởi tạo ArrayAdapter sử dụng Constructor để xác định Layout cho chuỗi mảng chuỗi − ArrayAdapter adapter = new ArrayAdapter(this,R.layout.ListView,StringArray); Trong Constructor này, tham số là: − Tham số thisthis ngữ cảnh ứng dụng Trong hầu hết trường hợp, bạn • giữ this Tham số thứ hai Layout định nghĩa XML file có TextView cho • chuỗi mảng Tham số cuối mảng chuỗi đưa vào TextView • Khi tạo ArrayAdapter, sau bạn cần gọisetAdapter() đối tượng ListViewcủa bạn sau:− ListView listView = (ListView) findViewById(R.id.listview); listView.setAdapter(adapter); Bạn định nghĩa List View bạn thư mục res/layout XML file Với ví dụ activity_main.xml file Ví dụ Sau ví dụ đưa bạn qua bước đơn giản để minh họa cách tạo ứng dụng Android sử dụng ListView Bạn theo bước sau để sửa đổi ứng dụng Android tạo chương Ví dụ Hello World − Bước Miêu tả Bạn sử dụng Android Studio IDE để tạo ứng dụng Android với tên ListDisplay package com.example.ListDisplay giải thích chương Ví dụ Hello http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 1 http://vietjack.com/android/index.jsp Copyright © vietjack.com World Sửa đổi nội dung mặc định res/layout/activity_main.xml để bao nội dung ListView với thuộc tính Khơng cần thay string.xml, Android Studio để ý chuỗi mặc định Tạo TextView file có tên res/layout/activity_listview.xml File có thiết lập để hiển thị tất item danh sách Do đó, bạn tùy chỉnh font, padding, color, với file Chạy ứng dụng để chạy Android Emulator kiểm tra kết thay đổi thực ứng dụng Sau nội dung Main Activity file sửa đổi:src/com.example.ListDisplay/ListDisplay.java package com.example.ListDisplay; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.widget.ArrayAdapter; import android.widget.ListView; public class ListDisplay extends Activity { // Array of strings String[] mobileArray = {"Android","IPhone","WindowsMobile","Blackberry","WebOS","Ubuntu","Windows7","M ax OS X"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ArrayAdapter adapter = new ArrayAdapter(this, R.layout.activity_listview, mobileArray); ListView listView = (ListView) findViewById(R.id.mobile_list); listView.setAdapter(adapter); } } Sau nội dung res/layout/activity_main.xml file − Sau nội dung res/values/strings.xml để định nghĩa hai − http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 1 http://vietjack.com/android/index.jsp Copyright © vietjack.com ListDisplay Settings Sau nội dung res/layout/activity_listview.xml file: Chạy ứng dụng Hello World! vừa sửa đổi Giả sử bạn tạo AVD cài đặt Để chạy ứng dụng từ Android Studio, mở activity file nhấn biểu tượng Run từ công cụ − http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 1 http://vietjack.com/android/index.jsp Copyright © vietjack.com SimpleCursorAdapter Android Bạn sử dụng Adapter nguồn liệu bạn Database Cursor (Con trỏ tới sở liệu) Khi sử dụng SimpleCursorAdapter, bạn phải xác định Layout để sử dụng cho hàng Cursorvà cột Cursor nên chèn vào View Layout Ví dụ, bạn muốn tạo danh sách tên, số điện thoại, bạn thực truy vấn mà trả Cursor chứa hàng cho người cột cho tên số Sau http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 1 http://vietjack.com/android/index.jsp Copyright © vietjack.com đó, bạn tạo mảng chuỗi xác định cột từ Cursor bạn muốn Layout cho kết mảng số nguyên xác định view tương ứng mà cột nên đặt − String[] fromColumns = {ContactsContract.Data.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER}; int[] toViews = {R.id.display_name, R.id.phone_number}; Khi bạn khởi tạo SimpleCursorAdapter, truyền Layout để sử dụng cho kết quả, Cursor chứa kết quả, hai mảng là: − SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.person_name_and_number, cursor, fromColumns, toViews, 0); ListView listView = getListView(); listView.setAdapter(adapter); Sau đó, SimpleCursorAdapter tạo view cho hàng Cursor sử dụng Layout cung cấp việc chèn item vào tương ứng: toViews tương ứng: http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 1 ... mảng chuỗi đưa vào TextView • Khi tạo ArrayAdapter, sau bạn cần gọisetAdapter() đối tượng ListViewcủa bạn sau:− ListView listView = (ListView) findViewById(R.id.listview); listView.setAdapter(adapter);... setContentView(R.layout.activity_main); ArrayAdapter adapter = new ArrayAdapter(this, R.layout.activity_listview, mobileArray); ListView listView = (ListView) findViewById(R.id.mobile _list) ; listView.setAdapter(adapter);... giữ liệu gửi liệu tới Adapter View, từ view lấy liệu từ Adapter View hiển thị liệu view khác dạng Spinner, List View, Grid View, … ListViewvà GridView lớp AdapterView Gắn kết chúng với mộtAdapter,