1. Trang chủ
  2. » Thể loại khác

list view trong android 2

7 50 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 342,36 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các item của danh sách này được tự động chèn vào danh sách bởi sử dụng một Adapter mà kéo nội dung từ một nguồn như một mảng hoặc cơ sở dữ liệu... Android cung cấp một số lớp con hữu íc

Trang 1

List View trong Android

ListView trong Android là một view mà nhóm một số item và hiển thị chúng trong danh

sách theo chiều dọc có thể scroll Các item của danh sách này được tự động chèn vào

danh sách bởi sử dụng một Adapter mà kéo nội dung từ một nguồn như một mảng hoặc

cơ sở dữ liệu

Trang 2

LIST VIEW

Một Adapter thực sự là cầu nối giữa các thành phần UI và nguồn dữ liệu mà điền dữ liệu vào trong thành phần UI Adapter giữ dữ liệu và gửi dữ liệu tới Adapter View, từ đó view có thể lấy dữ liệu từ Adapter View đó và hiển thị dữ liệu trên các view khác nhau ở dạng Spinner, List View, Grid View, …

ListViewvà GridView là các lớp con của AdapterView Gắn kết chúng với mộtAdapter,

mà thu nhận dữ liệu từ một nguồn ngoại vi và tạo một View để biểu diễn mỗi entry

Android cung cấp một số lớp con hữu ích của lớp Adapter để thu lấy các kiểu dữ liệu khác nhau và xây dựng các view cho một AdapterView (ví dụ ListView hoặc GridView) Các

Adapter, CursorAdapter,SimpleCursorAdapter,SpinnerAdapter và WrapperListAdapte

r

Các thuộc tính của ListView trong Android

Dưới đây là một số thuộc tính riêng cho ListView: −

Attribute Miêu tả

android:id Đây là ID mà nhận diện duy nhất Layout

android:divider Đây là drawable hoặc color để vẽ giữa các item trong

danh sách

android:dividerHeight Xác định chiều cao của divider Nó có thể là px, dp, sp, in,

hoặc mm

android:entries Xác định tham chiếu tới một array resource mà sẽ đưa

đến ListView

android:footerDividersEnabled Khi được thiết lập là false, thì ListView sẽ không vẽ divider

trước mỗi footer của view Giá trị mặc định là true

android:headerDividersEnabled Khi được thiết lập là false, thì ListView sẽ không vẽ divider

sau mỗi header của view Giá trị mặc định là true

Trang 3

ArrayAdapter trong Android

Bạn có thể sử dụng Adapter này khi nguồn dữ liệu là một mảng Theo mặc định, ArrayAdapter tạo một view cho mỗi item trong mảng bằng việc gọi toString() trên mỗi item

và đặt nội dung vào trong một TextView Giả sử bạn có một mảng các chuỗi và muốn hiển thị trong một ListView, bạn khởi tạo một ArrayAdapter mới sử dụng một Constructor để xác định Layout cho mỗi chuỗi và mảng chuỗi −

ArrayAdapter adapter = new

ArrayAdapter < String >( this , layout ListView , StringArray );

Trong Constructor này, các tham số là: −

Tham số đầu tiên thisthis là ngữ cảnh ứng dụng Trong hầu hết trường hợp, bạn giữ nó là this

Tham số thứ hai sẽ là Layout được định nghĩa trong XML file và có TextView cho

mỗi chuỗi trong mảng

• Tham số cuối cùng là một mảng các chuỗi sẽ được đưa vào trong TextView

Khi đã tạo ArrayAdapter, thì sau đó bạn chỉ cần gọisetAdapter() trên đối tượng ListViewcủa bạn như sau:−

ListView listView = ( ListView ) findViewById ( id listview );

listView setAdapter ( adapter );

Bạn sẽ định nghĩa List View của bạn dưới thư mục res/layout trong một XML file Với ví dụ của chúng ta là activity_main.xml file

Ví dụ

Sau đây là ví dụ đưa bạn qua các bước đơn giản để minh họa cách tạo ứng dụng Android bởi sử dụng ListView Bạn theo các bước sau để sửa đổi ứng dụng Android chúng ta đã

tạo trong chương Ví dụ Hello World −

Bước Miêu tả

1 Bạn sử dụng Android Studio IDE để tạo ứng dụng Android với tên ListDisplay dưới

một package là com.example.ListDisplay như đã giải thích trong chương Ví dụ Hello

Trang 4

World

2 Sửa đổi nội dung mặc định của res/layout/activity_main.xml để bao nội dung ListView

với các thuộc tính

3 Không cần thay đi string.xml, Android Studio sẽ để ý các hằng chuỗi mặc định

4 Tạo một TextView file có tên là res/layout/activity_listview.xml File này sẽ có thiết lập

để hiển thị tất cả item trong danh sách Do đó, bạn có thể tùy chỉnh font, padding,

color, với file này

6 Chạy ứng dụng để chạy Android Emulator và kiểm tra kết quả các thay đổi đã thực

hiện trong ứng dụng

đổ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 ( layout activity_main ); ArrayAdapter adapter = new

ArrayAdapter < String >( this , R layout activity_listview , mobileArray );

ListView listView = ( ListView ) findViewById ( id mobile_list );

listView setAdapter ( adapter ); } }

Sau đây là nội dung của res/layout/activity_main.xml file −

<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"

xmlns:tools = "http://schemas.android.com/tools"

android:layout_width = "match_parent" android:layout_height = "match_parent"

android:orientation = "vertical" tools:context = ".ListActivity" <ListView

android:id = "@+id/mobile_list" android:layout_width = "match_parent"

android:layout_height = "wrap_content" </ListView> </LinearLayout>

Sau đây là nội dung của res/values/strings.xml để định nghĩa hai hằng −

Trang 5

<? xml version = "1.0" encoding = "utf-8" ?> <resources> <string

name = "app_name" > ListDisplay </string> <string

name = "action_settings" > Settings </string> </resources>

Sau đây là nội dung của res/layout/activity_listview.xml file:

<? xml version = "1.0" encoding = "utf-8" ?> <! Single List Item Design >

<TextView xmlns:android = "http://schemas.android.com/apk/res/android"

android:id = "@+id/label" android:layout_width = "fill_parent"

android:layout_height = "fill_parent" android:padding = "10dip"

android:textSize = "16dip" android:textStyle = "bold" </TextView>

Chạy ứng dụng Hello World! vừa sửa đổi ở trên Giả sử bạn đã tạo AVD trong khi cài đặt

Để chạy ứng dụng từ Android Studio, mở activity file và nhấn biểu tượng Run từ thanh công cụ −

Trang 6

SimpleCursorAdapter trong Android

Bạn có thể sử dụng Adapter này khi nguồn dữ liệu của bạn là một Database Cursor (Con

trỏ tới cơ sở dữ liệu) Khi sử dụng SimpleCursorAdapter, bạn phải xác định một Layout để

sử dụng cho mỗi hàng trong Cursorvà các cột nào trong Cursor nên được chèn vào trong

View nào trong Layout

Ví dụ, nếu bạn muốn tạo một danh sách tên, số điện thoại, bạn có thể thực hiện một truy vấn mà trả về một Cursor chứa một hàng cho mỗi người và các cột cho các tên và số Sau

Trang 7

đó, bạn tạo một mảng chuỗi xác định các cột nào từ Cursor bạn muốn trong Layout cho mỗi kết quả và một mảng số nguyên xác định các view tương ứng mà mỗi cột nên được đặt −

String [] fromColumns = { ContactsContract Data DISPLAY_NAME ,

ContactsContract CommonDataKinds Phone NUMBER }; int [] toViews =

{ id display_name , R id phone_number };

Khi bạn khởi tạo SimpleCursorAdapter, truyền Layout để sử dụng cho mỗi kết quả, Cursor chứa các kết quả, và 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 một view cho mỗi hàng trong Cursor bởi sử dụng Layout

đã cung cấp bằng việc chèn mỗi item vào trong tương ứng: toViews tương ứng:

Ngày đăng: 15/12/2017, 17:24

TỪ KHÓA LIÊN QUAN

w