Bagikan melalui


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 UITableViewSourcedengan ).

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 ListViewdalam . 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 ListViewdalam .

Jalankan aplikasi lagi. Anda dapat menggulir daftar, atau mengetik untuk memfilternya, lalu klik item untuk melihat pesan. Anda seharusnya melihat sesuatu seperti berikut:

Contoh cuplikan layar ListView dengan nama negara/wilayah

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:

Contoh cuplikan layar ListView dengan daftar nama yang lebih kecil

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.

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 .