Setiap kolom teks mengharapkan jenis masukan teks tertentu, seperti alamat email, nomor telepon, atau hanya teks biasa. Penting untuk menetapkan jenis masukan untuk setiap kolom teks di aplikasi Anda sehingga sistem akan menampilkan metode masukan virtual yang sesuai (seperti keyboard di layar).
Di luar jenis tombol yang tersedia dengan metode masukan, Anda perlu menentukan perilaku seperti: apakah metode masukan akan memberikan saran ejaan, mengubah kalimat baru, dan mengganti tombol enter dengan tombol tindakan seperti Selesai atau Berikutnya. Tutorial ini menunjukkan cara menentukan karakteristik ini.
Menentukan jenis keyboard
Anda harus selalu mendeklarasikan metode masukan untuk bidang teks dengan menambahkan atribut android:inputType
ke elemen <EditText>
.

Gambar 1. Jenis masukan phone
.
Misalnya, jika Anda ingin ada metode masukan untuk memasukkan nomor telepon, gunakan nilai "phone"
:
<EditText android:id="@+id/phone" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/phone_hint" android:inputType="phone" />

Gambar 2. Jenis masukan textPassword
.
Atau jika kolom teks adalah untuk sandi, gunakan nilai "textPassword"
sehingga kolom teks menyembunyikan masukan pengguna:
<EditText android:id="@+id/password" android:hint="@string/password_hint" android:inputType="textPassword" ... />
Ada beberapa nilai yang mungkin didokumentasikan dengan atribut android:inputType
dan beberapa nilai dapat digabungkan untuk menentukan tampilan metode masukan dan perilaku tambahan.
Mengaktifkan saran ejaan dan perilaku lainnya

Gambar 3. Penambahan textAutoCorrect
akan memberikan koreksi otomatis untuk kesalahan ejaan.
Atribut android:inputType
memungkinkan Anda menentukan berbagai perilaku untuk metode masukan. Yang paling penting, jika kolom teks ditujukan untuk masukan teks dasar (seperti untuk pesan teks), Anda harus mengaktifkan koreksi ejaan otomatis dengan nilai "textAutoCorrect"
.
Anda dapat menggabungkan berbagai perilaku dan gaya metode masukan dengan atribut android:inputType
. Contoh, berikut adalah cara membuat kolom teks yang menggunakan huruf besar kata pertama dari sebuah kalimat dan juga mengoreksi kesalahan ejaan secara otomatis:
<EditText android:id="@+id/message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputType= "textCapSentences|textAutoCorrect" ... />
Menentukan tindakan metode masukan
Sebagian besar metode masukan virtual menyediakan tombol tindakan pengguna di sudut bawah yang sesuai untuk kolom teks saat ini.
Secara default, sistem akan menggunakan tombol ini untuk tindakan Berikutnya atau Selesai kecuali kolom teks Anda memungkinkan teks multi-baris (seperti dengan android:inputType="textMultiLine"
), dalam hal ini tombol tindakan berupa enter.
Namun, Anda dapat menentukan tindakan tambahan yang mungkin lebih sesuai untuk kolom teks Anda, seperti Kirim atau Mulai.
Untuk menentukan tombol tindakan keyboard, gunakan atribut android:imeOptions
dengan nilai tindakan seperti "actionSend"
atau "actionSearch"
. Contoh:

Gambar 4. Tombol Kirim muncul saat Anda mendeklarasikan android:imeOptions="actionSend"
.
<EditText android:id="@+id/search" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/search_hint" android:inputType="text" android:imeOptions="actionSend" />
Anda kemudian dapat memproses penekanan tombol tindakan dengan menentukan TextView.OnEditorActionListener
untuk elemen EditText
. Pada pemroses Anda, balas ID tindakan IME yang sesuai yang ditentukan dalam class EditorInfo
, seperti IME_ACTION_SEND
. Contoh:
Kotlin
findViewById<EditText>(R.id.search).setOnEditorActionListener { v, actionId, event -> return@setOnEditorActionListener when (actionId) { EditorInfo.IME_ACTION_SEND -> { sendMessage() true } else -> false } }
Java
EditText editText = (EditText) findViewById(R.id.search); editText.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { boolean handled = false; if (actionId == EditorInfo.IME_ACTION_SEND) { sendMessage(); handled = true; } return handled; } });
Memberikan saran pengisian otomatis
Jika Anda ingin memberikan saran kepada pengguna saat mengetik, Anda dapat menggunakan subclass dari EditText
yang disebut AutoCompleteTextView
. Untuk menerapkan pengisian otomatis, Anda harus menentukan Adapter
yang menyediakan saran teks.
Ada beberapa jenis adaptor yang tersedia, tergantung dari mana data berasal, seperti dari database atau array.

Gambar 5. Contoh AutoCompleteTextView
dengan saran teks.
Prosedur berikut menjelaskan cara menyiapkan AutoCompleteTextView
yang memberikan saran dari array, menggunakan ArrayAdapter
:
- Tambahkan
AutoCompleteTextView
ke tata letak Anda. Berikut adalah tata letak dengan kolom teks saja:<?xml version="1.0" encoding="utf-8"?> <AutoCompleteTextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/autocomplete_country" android:layout_width="fill_parent" android:layout_height="wrap_content" />
- Tetapkan array yang berisi semua saran teks. Contohnya, berikut adalah array nama negara yang ditentukan dalam file resource XML (
res/values/strings.xml
):<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="countries_array"> <item>Afghanistan</item> <item>Albania</item> <item>Algeria</item> <item>American Samoa</item> <item>Andorra</item> <item>Angola</item> <item>Anguilla</item> <item>Antarctica</item> ... </string-array> </resources>
- Pada
Activity
atauFragment
, gunakan kode berikut untuk menentukan adaptor yang memberikan saran:Kotlin
// Get a reference to the AutoCompleteTextView in the layout val textView = findViewById(R.id.autocomplete_country) as AutoCompleteTextView // Get the string array val countries: Array<out String> = resources.getStringArray(R.array.countries_array) // Create the adapter and set it to the AutoCompleteTextView ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, countries).also { adapter -> textView.setAdapter(adapter) }
Java
// Get a reference to the AutoCompleteTextView in the layout AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_country); // Get the string array String[] countries = getResources().getStringArray(R.array.countries_array); // Create the adapter and set it to the AutoCompleteTextView ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, countries); textView.setAdapter(adapter);
Di sini,
ArrayAdapter
baru diinisialisasi untuk mengikat setiap item dalam array stringcountries_array
keTextView
yang ada dalam tata letaksimple_list_item_1
(ini adalah tata letak yang disediakan oleh Android yang menyediakan tampilan standar untuk teks dalam daftar). - Tetapkan adaptor ke
AutoCompleteTextView
dengan memanggilsetAdapter()
.