Lengkapi Otomatis untuk Xamarin.Android
AutoCompleteTextView
adalah elemen tampilan teks yang dapat diedit yang menunjukkan saran penyelesaian secara otomatis saat pengguna mengetik. Daftar saran ditampilkan di menu drop-down tempat pengguna dapat memilih item untuk mengganti konten kotak edit.
Gambaran Umum
Untuk membuat widget entri teks yang menyediakan saran lengkapi otomatis, gunakan AutoCompleteTextView
Widget. Saran diterima dari kumpulan string yang terkait dengan widget melalui ArrayAdapter
.
Dalam tutorial ini, Anda akan membuat AutoCompleteTextView
widget yang memberikan saran untuk nama negara.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Country" />
<AutoCompleteTextView android:id="@+id/autocomplete_country"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"/>
</LinearLayout>
TextView
adalah label yang memperkenalkanAutoCompleteTextView
Widget.
Tutorial
Mulai proyek baru bernama HelloAutoComplete.
Buat file XML bernama list_item.xml
dan simpan di dalam folder Sumber Daya/Tata Letak . Atur Tindakan Build file ini ke AndroidResource
. Edit file agar terlihat seperti 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"
android:textColor="#000">
</TextView>
File ini mendefinisikan sederhana TextView
yang akan digunakan untuk setiap item yang muncul dalam daftar saran.
Buka Sumber Daya/Tata Letak/Main.axml dan sisipkan yang berikut ini:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Country" />
<AutoCompleteTextView android:id="@+id/autocomplete_country"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"/>
</LinearLayout>
Buka MainActivity.cs dan sisipkan kode berikut untuk OnCreate()
Metode:
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
// Set our view from the "Main" layout resource
SetContentView (Resource.Layout.Main);
AutoCompleteTextView textView = FindViewById<AutoCompleteTextView> (Resource.Id.autocomplete_country);
var adapter = new ArrayAdapter<String> (this, Resource.Layout.list_item, COUNTRIES);
textView.Adapter = adapter;
}
Setelah tampilan konten diatur ke main.xml
tata letak, AutoCompleteTextView
widget diambil dari tata letak dengan FindViewById
. ArrayAdapter
Baru kemudian diinisialisasi untuk mengikat list_item.xml
tata letak ke setiap item daftar dalam COUNTRIES
array string (ditentukan pada langkah berikutnya). Akhirnya, SetAdapter()
dipanggil untuk mengaitkan ArrayAdapter
dengan AutoCompleteTextView
widget sehingga array string akan mengisi daftar saran.
MainActivity
Di dalam kelas, tambahkan array string:
static 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 daftar saran yang akan disediakan dalam daftar drop-down saat pengguna mengetik AutoCompleteTextView
Widget.
Jalankan aplikasi lagi. Saat Anda mengetik, Anda akan melihat sesuatu seperti ini:
Informasi Selengkapnya
Perhatikan bahwa menggunakan array string yang dikodekan secara permanen bukanlah praktik desain yang direkomendasikan karena kode aplikasi Anda harus fokus pada perilaku, bukan konten. Konten aplikasi seperti string harus diekternetisasi dari kode untuk membuat modifikasi pada konten lebih mudah dan memfasilitasi pelokalan konten. String yang dikodekan secara permanen digunakan dalam tutorial ini hanya untuk membuatnya sederhana dan fokus pada AutoCompleteTextView
Widget. Sebagai gantinya, aplikasi Anda harus mendeklarasikan array string tersebut dalam file XML. Ini dapat dilakukan dengan <string-array>
sumber daya dalam file proyek res/values/strings.xml
Anda. Contohnya:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<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 ArrayAdapter
baris konstruktor dengan yang berikut:
string[] countries = Resources.GetStringArray (Resource.array.countries_array);
var adapter = new ArrayAdapter<String> (this, Resource.layout.list_item, countries);
Referensi
- Resep AutoCompleteTextView – Proyek sampel Xamarin.Android untuk
AutoCompleteTextView
ArrayAdapter
AutoCompleteTextView
Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5. Tutorial ini didasarkan pada tutorial Lengkapi Otomatis Android*.