Friday, February 19, 2021

Tìm hiểu listview trong Android

 Danh sách các mục có thể cuộn có thể được hiển thị trong Android bằng ListView. Nó giúp bạn hiển thị dữ liệu dưới dạng một danh sách có thể cuộn được. Sau đó, người dùng có thể chọn bất kỳ mục nào trong danh sách bằng cách nhấp vào nó. ListView mặc định có thể cuộn nên chúng ta không cần sử dụng Chế độ xem cuộn hoặc bất kỳ thứ gì khác với ListView.

ListView Android được sử dụng rộng rãi trong các ứng dụng Android. Một ví dụ rất phổ biến về ListView là danh bạ điện thoại của bạn, nơi bạn có một danh sách các liên hệ được hiển thị trong ListView và nếu bạn nhấp vào nó thì thông tin người dùng sẽ được hiển thị.

Adapter: Để điền dữ liệu vào ListView, chúng tôi chỉ cần sử dụng adapter trong Android. Các mục danh sách được tự động chèn vào danh sách bằng adapter kéo nội dung từ một nguồn như danh sách mảng, mảng hoặc cơ sở dữ liệu.

ListView trong Android Studio: Listview hiển thị bên trong Vùng chứa. Từ đó bạn có thể kéo và thả trên màn hình di động ảo để tạo nó. Ngoài ra, bạn cũng có thể mã XML để tạo nó.

Sau đây là ví dụ tạo listview bằng xml trong Android:

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

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

    android:id="@+id/simpleListView"

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    tools:context="abhiandroid.com.listexample.MainActivity">

</ListView>

Hình ảnh dưới đây là kết quả của việc sử dụng listview với dạng cơ bản.

listview trong Android

Nội dung bài học:

  • 1. Thuộc tính của Listview
  • 2.  Sử dụng Adapter trong Listview

Attributes của listview

Dưới đây là những thuộc tính của listview, bạn có thể tham khảo để desning .
Id: được sử dụng để xác định duy nhất một ListView.
ví dụ dưới đây để giải thích thuộc tính id trên:

<!-- Id of a list view uniquely identify it-->
<ListView
android:id="@+id/simpleListView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
divider: Đây là phần có thể vẽ hoặc màu để vẽ giữa các mục danh sách khác nhau.

Dưới đây là mã ví dụ về dải phân cách có kèm theo giải thích, trong đó chúng tôi vẽ dải phân cách màu đỏ giữa các khung nhìn khác nhau.
<!--Divider code in ListView-->
<ListView
android:id="@+id/simpleListView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:divider="#f00"
android:dividerHeight="1dp"
/>

dividerHeight: Điều này chỉ định chiều cao của dải phân cách giữa các mục danh sách. Điều này có thể là dp (pixel mật độ), sp (pixel độc lập theo tỷ lệ) hoặc px (pixel).
Trong ví dụ trên về bộ chia, chúng tôi cũng đặt chiều cao của dải phân cách 1dp giữa các mục danh sách. Chiều cao phải bằng dp, sp hoặc px.
listSelector: thuộc tính listSelector được sử dụng để đặt bộ chọn của listView. Nó thường là màu chủ yếu là màu cam hoặc màu xanh da trời nhưng bạn cũng có thể xác định màu tùy chỉnh của mình hoặc hình ảnh làm bộ chọn danh sách theo thiết kế của bạn.
Dưới đây là mã ví dụ listSelector với giải thích bao gồm, trong đó màu của bộ chọn danh sách là màu xanh lục, khi bạn chọn bất kỳ mục nào trong danh sách thì màu nền của mục đó là màu xanh lục.
<!-- List Selector Code in ListView -->
<ListView
android:id="@+id/simpleListView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:divider="#f00"
android:dividerHeight="1dp" 
android:listSelector="#0f0"/>

Cách sử dụng Adapter trong listview

Adapter là cầu nối giữa thành phần UI và data giúp chúng tôi điền dữ liệu vào thành phần UI. Nó giữ dữ liệu và gửi dữ liệu đến chế độ xem bộ điều hợp sau đó chế độ xem có thể lấy dữ liệu từ chế độ xem bộ điều hợp và hiển thị dữ liệu trên các chế độ xem khác nhau như chế độ xem danh sách, chế độ xem lưới, hình xoay, v.v.

ListView là một lớp con của AdapterView và nó có thể được điền bằng cách liên kết với một Bộ điều hợp, nó lấy dữ liệu từ một nguồn bên ngoài và tạo một Dạng xem đại diện cho mỗi mục nhập dữ liệu

Trong Adapter listview có 2 dạng adapter:
  • Array Adapter
  • Base Adapter
Bây giờ tôi sẽ giới thiệu từng phần cho các bạn như sau:

Array Adapter


Bất cứ khi nào bạn có một danh sách các mục đơn lẻ được hỗ trợ bởi một mảng, bạn có thể sử dụng ArrayAdapter. Ví dụ: danh sách liên hệ điện thoại, quốc gia hoặc tên.

Lưu ý quan trọng: Theo mặc định, ArrayAdapter yêu cầu Bố cục có một TextView duy nhất, Nếu bạn muốn sử dụng các dạng xem phức tạp hơn có nghĩa là tùy chỉnh nhiều hơn trong các mục danh sách, vui lòng tránh ArrayAdapter và sử dụng adapter tùy chỉnh.

ArrayAdapter adapter = new ArrayAdapter<String>(this,R.layout.ListView,R.id.textView,StringArray);

Base Adapter: 

BaseAdapter trong listview là một lớp cơ sở chung của việc triển khai chung một Bộ điều hợp có thể được sử dụng trong ListView. Bất cứ khi nào bạn cần một danh sách tùy chỉnh, bạn tạo bộ điều hợp của riêng mình và mở rộng bộ điều hợp cơ sở trong đó. Bộ điều hợp cơ sở có thể được mở rộng để tạo Bộ điều hợp tùy chỉnh để hiển thị một mục danh sách tùy chỉnh. ArrayAdapter cũng là một triển khai của BaseAdapter.

No comments:

Post a Comment