Xamarin.Android ListView
ListView adalah komponen UI penting dari aplikasi Android; ini digunakan di mana-mana dari daftar pendek opsi menu hingga daftar panjang kontak atau favorit internet. Ini menyediakan cara sederhana untuk menyajikan daftar baris gulir yang dapat diformat dengan gaya bawaan atau disesuaikan secara ekstensif.
Gambaran Umum
Tampilan daftar dan adaptor disertakan dalam blok penyusun aplikasi Android yang paling mendasar. Kelas ini ListView
menyediakan cara yang fleksibel untuk menyajikan data, baik itu menu pendek atau daftar gulir panjang. Ini menyediakan fitur kegunaan seperti pengguliran cepat, indeks, dan satu atau beberapa pilihan untuk membantu Anda membangun antarmuka pengguna yang ramah seluler untuk aplikasi Anda. ListView
Instans memerlukan Adaptor untuk memberinya umpan dengan data yang terkandung dalam tampilan baris.
Panduan ini menjelaskan cara mengimplementasikan ListView
dan berbagai Adapter
kelas di Xamarin.Android. Ini juga menunjukkan cara menyesuaikan tampilan ListView
, dan membahas pentingnya penggunaan kembali baris untuk mengurangi konsumsi memori. Ada juga beberapa diskusi tentang bagaimana Siklus Hidup Aktivitas memengaruhi ListView
dan Adapter
menggunakan. Jika Anda mengerjakan aplikasi lintas platform dengan Xamarin.iOS, ListView
kontrolnya secara struktural mirip dengan iOS UITableView
(dan Android Adapter
mirip UITableViewSource
dengan ).
Pertama, tutorial singkat memperkenalkan ListView
dengan contoh kode dasar. Selanjutnya, tautan ke topik yang lebih canggih disediakan untuk membantu Anda menggunakan ListView
di aplikasi dunia nyata.
Catatan
Widget RecyclerView
adalah versi yang lebih canggih dan fleksibel dari ListView
. Karena RecyclerView
dirancang untuk menjadi penerus ListView
(dan GridView
), kami sarankan Anda menggunakan RecyclerView
daripada ListView
untuk pengembangan aplikasi baru. Untuk informasi selengkapnya, lihat RecyclerView.
ListView Tutorial
ListView
adalah ViewGroup
yang membuat daftar item yang dapat digulir. Item daftar secara otomatis disisipkan ke daftar menggunakan IListAdapter
.
Dalam tutorial ini, Anda akan membuat daftar nama negara/wilayah yang dapat digulir yang dibaca dari array string. Saat item daftar dipilih, pesan toast akan menampilkan posisi item dalam daftar.
Mulai proyek baru bernama HelloListView.
Buat file XML bernama list_item.xml dan simpan di dalam folder Sumber Daya/Tata Letak/ . Sisipkan yang berikut ini:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:textSize="16sp">
</TextView>
File ini menentukan tata letak untuk setiap item yang akan ditempatkan di ListView
.
Buka MainActivity.cs
dan ubah kelas untuk diperluas ListActivity
(bukan Activity
):
public class MainActivity : ListActivity
{
Sisipkan kode berikut untuk OnCreate()
metode ) :
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
ListAdapter = new ArrayAdapter<string> (this, Resource.Layout.list_item, countries);
ListView.TextFilterEnabled = true;
ListView.ItemClick += delegate (object sender, AdapterView.ItemClickEventArgs args)
{
Toast.MakeText(Application, ((TextView)args.View).Text, ToastLength.Short).Show();
};
}
Perhatikan bahwa ini tidak memuat file tata letak untuk Aktivitas (yang biasanya Anda lakukan dengan SetContentView(int)
)).
Sebagai gantinya, mengatur ListAdapter
properti secara otomatis menambahkan ListView
untuk mengisi seluruh layar ListActivity
.
Metode ini mengambil ArrayAdapter<T>
, yang mengelola array item daftar yang akan ditempatkan ke ListView
dalam .
Tje ArrayAdapter<T>
konstruktor mengambil aplikasi Context
, deskripsi tata letak untuk setiap item daftar (dibuat pada langkah sebelumnya), dan T[]
atau Java.Util.IList<T>
array objek untuk disisipkan dalam ListView
(didefinisikan berikutnya).
Tje TextFilterEnabled
properti mengaktifkan pemfilteran teks untuk ListView
, sehingga ketika pengguna mulai mengetik, daftar akan difilter.
Tje ItemClick
kejadian dapat digunakan untuk berlangganan handler untuk klik. Saat item di ListView
diklik, handler dipanggil dan Toast
pesan ditampilkan, menggunakan teks dari item yang diklik.
Anda dapat menggunakan desain item daftar yang disediakan oleh platform alih-alih menentukan file tata letak Anda sendiri untuk ListAdapter
.
Misalnya, coba gunakan Android.Resource.Layout.SimpleListItem1
alih-alih Resource.Layout.list_item
.
Tambahkan pernyataan berikut using
:
using System;
Selanjutnya, tambahkan array string berikut sebagai anggota dari MainActivity
:
static readonly string[] countries = new String[] {
"Afghanistan","Albania","Algeria","American Samoa","Andorra",
"Angola","Anguilla","Antarctica","Antigua and Barbuda","Argentina",
"Armenia","Aruba","Australia","Austria","Azerbaijan",
"Bahrain","Bangladesh","Barbados","Belarus","Belgium",
"Belize","Benin","Bermuda","Bhutan","Bolivia",
"Bosnia and Herzegovina","Botswana","Bouvet Island","Brazil","British Indian Ocean Territory",
"British Virgin Islands","Brunei","Bulgaria","Burkina Faso","Burundi",
"Cote d'Ivoire","Cambodia","Cameroon","Canada","Cape Verde",
"Cayman Islands","Central African Republic","Chad","Chile","China",
"Christmas Island","Cocos (Keeling) Islands","Colombia","Comoros","Congo",
"Cook Islands","Costa Rica","Croatia","Cuba","Cyprus","Czech Republic",
"Democratic Republic of the Congo","Denmark","Djibouti","Dominica","Dominican Republic",
"East Timor","Ecuador","Egypt","El Salvador","Equatorial Guinea","Eritrea",
"Estonia","Ethiopia","Faeroe Islands","Falkland Islands","Fiji","Finland",
"Former Yugoslav Republic of Macedonia","France","French Guiana","French Polynesia",
"French Southern Territories","Gabon","Georgia","Germany","Ghana","Gibraltar",
"Greece","Greenland","Grenada","Guadeloupe","Guam","Guatemala","Guinea","Guinea-Bissau",
"Guyana","Haiti","Heard Island and McDonald Islands","Honduras","Hong Kong","Hungary",
"Iceland","India","Indonesia","Iran","Iraq","Ireland","Israel","Italy","Jamaica",
"Japan","Jordan","Kazakhstan","Kenya","Kiribati","Kuwait","Kyrgyzstan","Laos",
"Latvia","Lebanon","Lesotho","Liberia","Libya","Liechtenstein","Lithuania","Luxembourg",
"Macau","Madagascar","Malawi","Malaysia","Maldives","Mali","Malta","Marshall Islands",
"Martinique","Mauritania","Mauritius","Mayotte","Mexico","Micronesia","Moldova",
"Monaco","Mongolia","Montserrat","Morocco","Mozambique","Myanmar","Namibia",
"Nauru","Nepal","Netherlands","Netherlands Antilles","New Caledonia","New Zealand",
"Nicaragua","Niger","Nigeria","Niue","Norfolk Island","North Korea","Northern Marianas",
"Norway","Oman","Pakistan","Palau","Panama","Papua New Guinea","Paraguay","Peru",
"Philippines","Pitcairn Islands","Poland","Portugal","Puerto Rico","Qatar",
"Reunion","Romania","Russia","Rwanda","Sqo Tome and Principe","Saint Helena",
"Saint Kitts and Nevis","Saint Lucia","Saint Pierre and Miquelon",
"Saint Vincent and the Grenadines","Samoa","San Marino","Saudi Arabia","Senegal",
"Seychelles","Sierra Leone","Singapore","Slovakia","Slovenia","Solomon Islands",
"Somalia","South Africa","South Georgia and the South Sandwich Islands","South Korea",
"Spain","Sri Lanka","Sudan","Suriname","Svalbard and Jan Mayen","Swaziland","Sweden",
"Switzerland","Syria","Taiwan","Tajikistan","Tanzania","Thailand","The Bahamas",
"The Gambia","Togo","Tokelau","Tonga","Trinidad and Tobago","Tunisia","Turkey",
"Turkmenistan","Turks and Caicos Islands","Tuvalu","Virgin Islands","Uganda",
"Ukraine","United Arab Emirates","United Kingdom",
"United States","United States Minor Outlying Islands","Uruguay","Uzbekistan",
"Vanuatu","Vatican City","Venezuela","Vietnam","Wallis and Futuna","Western Sahara",
"Yemen","Yugoslavia","Zambia","Zimbabwe"
};
Ini adalah array string yang akan ditempatkan ke ListView
dalam .
Jalankan aplikasi lagi. Anda dapat menggulir daftar, atau mengetik untuk memfilternya, lalu klik item untuk melihat pesan. Anda seharusnya melihat sesuatu seperti berikut:
Perhatikan bahwa menggunakan array string yang dikodekan secara permanen bukanlah praktik desain terbaik. Satu digunakan dalam tutorial ini untuk kesederhanaan, untuk menunjukkan ListView
Widget. Praktik yang lebih baik adalah mereferensikan array string yang ditentukan oleh sumber daya eksternal, seperti dengan string-array
sumber daya dalam file Sumber Daya/Nilai/Strings.xml proyek Anda. Contohnya:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">HelloListView</string>
<string-array name="countries_array">
<item>Bahrain</item>
<item>Bangladesh</item>
<item>Barbados</item>
<item>Belarus</item>
<item>Belgium</item>
<item>Belize</item>
<item>Benin</item>
</string-array>
</resources>
Untuk menggunakan string sumber daya ini untuk ArrayAdapter
, ganti yang asli ListAdapter
baris dengan yang berikut:
string[] countries = Resources.GetStringArray (Resource.Array.countries_array);
ListAdapter = new ArrayAdapter<string> (this, Resource.Layout.list_item, countries);
Jalankan aplikasi lagi. Anda seharusnya melihat sesuatu seperti berikut:
Melaju Lebih Jauh dengan ListView
Topik yang tersisa (ditautkan di bawah) melihat cara kerja yang komprehensif dengan ListView
kelas dan berbagai jenis jenis Adapter yang dapat Anda gunakan dengannya. Strukturnya adalah sebagai berikut:
Tampilan Visual – Bagian kontrol
ListView
dan cara kerjanya.Kelas – Gambaran umum kelas yang digunakan untuk menampilkan
ListView
.Menampilkan Data dalam ListView – Cara menampilkan daftar data sederhana; cara menerapkan
ListView's
fitur kegunaan; cara menggunakan tata letak baris bawaan yang berbeda; dan cara Adapter menyimpan memori dengan menggunakan kembali tampilan baris.Tampilan kustom – Mengubah gaya
ListView
dengan tata letak, font, dan warna kustom.Menggunakan SQLite – Cara menampilkan data dari database SQLite dengan
CursorAdapter
.Siklus Hidup Aktivitas – Pertimbangan desain saat menerapkan
ListView
Aktivitas, termasuk di mana dalam siklus hidup Anda harus mengisi data Anda dan kapan harus merilis sumber daya.
Diskusi (dipecah menjadi enam bagian) dimulai dengan gambaran umum kelas itu ListView
sendiri sebelum memperkenalkan contoh yang semakin kompleks tentang cara menggunakannya.
- Bagian dan Fungsionalitas ListView
- Mengisi ListView dengan Data
- Menyesuaikan Tampilan ListView
- Menggunakan CursorAdapters
- Menggunakan ContentProvider
- ListView dan Siklus Hidup Aktivitas
Ringkasan
Set topik ini memperkenalkan ListView
dan memberikan beberapa contoh cara menggunakan fitur bawaan dari ListActivity
. Ini membahas implementasi ListView
kustom yang diizinkan untuk tata letak berwarna-warni dan menggunakan database SQLite, dan secara singkat menyentuh relevansi siklus hidup aktivitas pada implementasi Anda ListView
.