Setiap kolom teks mengharapkan jenis input teks tertentu, seperti alamat email, nomor telepon, atau teks biasa. Anda harus menentukan jenis input untuk setiap kolom teks di aplikasi agar sistem menampilkan metode input virtual yang sesuai, seperti keyboard di layar.
Selain jenis tombol yang tersedia dengan metode input, Anda dapat menentukan perilaku seperti apakah metode input memberikan saran ejaan, menggunakan huruf besar pada kalimat baru, dan mengganti tombol enter dengan tombol tindakan seperti Done atau Next. Halaman ini menunjukkan cara untuk menentukan karakteristik ini.
Menentukan jenis keyboard
Selalu deklarasikan metode input untuk kolom teks Anda dengan menambahkan atribut
android:inputType
ke atribut
elemen <EditText>
.
Misalnya, jika Anda ingin metode input 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" />
Jika kolom teks adalah untuk sandi, gunakan nilai "textPassword"
sehingga kolom teks
menyembunyikan
input pengguna:
<EditText android:id="@+id/password" android:hint="@string/password_hint" android:inputType="textPassword" ... />
Ada beberapa kemungkinan nilai yang didokumentasikan dengan atribut android:inputType
,
dan Anda bisa menggabungkan beberapa nilai untuk menetapkan tampilan metode input dan
perilaku model.
Mengaktifkan saran ejaan dan perilaku lainnya
Atribut android:inputType
memungkinkan Anda menentukan berbagai perilaku untuk input
. Yang paling penting, jika kolom teks Anda ditujukan untuk input teks dasar—seperti untuk
pesan teks—aktifkan koreksi ejaan otomatis dengan "textAutoCorrect"
dengan sejumlah nilai.
Anda bisa menggabungkan berbagai perilaku dan gaya metode {i>input <i}dengan
Atribut android:inputType
. Misalnya, berikut cara membuat kolom teks yang
menggunakan huruf besar pada kata pertama dalam 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 input
Sebagian besar metode {i>soft input<i} menyediakan tombol tindakan pengguna di sudut bawah yang sesuai untuk
{i>field <i}teks saat ini. Secara default, sistem menggunakan tombol ini untuk tombol Next atau
Tindakan Selesai kecuali kolom teks Anda mendukung teks multibaris—seperti dengan
android:inputType="textMultiLine"
—dalam hal ini tombol tindakan adalah enter
kembali. Namun, Anda dapat menentukan tindakan lain yang mungkin lebih sesuai untuk kolom teks,
seperti Send atau Go.
Untuk menentukan tombol tindakan keyboard, gunakan
android:imeOptions
dengan nilai tindakan seperti "actionSend"
atau "actionSearch"
. Contoh:
<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 bisa memproses penekanan tombol tindakan dengan menentukan
TextView.OnEditorActionListener
untuk elemen EditText
. Di
pemroses, tanggapi ID tindakan IME yang sesuai, yang didefinisikan dalam
Class EditorInfo
,
seperti
IME_ACTION_SEND
,
seperti yang ditunjukkan dalam contoh berikut:
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 mereka mengetik, Anda dapat menggunakan {i>subclass<i} dari
EditText
menelepon
AutoCompleteTextView
.
Untuk menerapkan pelengkapan otomatis, Anda harus menentukan
Adapter
yang menyediakan teks
ejaan atau mendapatkan saran gaya. Ada beberapa adaptor yang tersedia, tergantung dari mana data berasal, seperti
seperti dari database atau array.
Prosedur berikut menjelaskan cara menyiapkan AutoCompleteTextView
yang
memberikan saran dari suatu {i>array <i}menggunakan
ArrayAdapter
:
- Tambahkan
AutoCompleteTextView
ke tata letak Anda. Berikut adalah tata letak yang hanya berisi teks bidang:<?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. Sebagai contoh, berikut adalah
array nama negara:
<?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>
- Di
Activity
atauFragment
, gunakan kode berikut untuk tentukan 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);
Pada contoh sebelumnya,
ArrayAdapter
baru diinisialisasi untuk mengikat setiap item di 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()
.