Her metin alanı; e-posta adresi, telefon numarası veya düz metin gibi belirli bir metin girişi türü bekler. Sistemin dokunmatik klavye gibi uygun yumuşak giriş yöntemini görüntülemesi amacıyla uygulamanızdaki her metin alanı için giriş türünü belirtmeniz gerekir.
Bir giriş yöntemiyle kullanılabilen düğme türlerinin ötesinde, giriş yönteminin yazım önerileri sağlayıp sağlamadığı, yeni cümlelerin ilk harfini büyük yazıp yazmadığı ve satır başı düğmesini Bitti veya İleri gibi bir işlem düğmesiyle değiştirip değiştirmediği gibi davranışları belirtebilirsiniz. Bu sayfada, bu özelliklerin nasıl belirtileceği gösterilmektedir.
Klavye türünü belirtme
Metin alanlarınız için giriş yöntemini her zaman <EditText>
öğesine android:inputType
özelliğini ekleyerek bildirin.
Örneğin, telefon numarası girmek için bir giriş yöntemi istiyorsanız "phone"
değerini kullanın:
<EditText android:id="@+id/phone" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/phone_hint" android:inputType="phone" />
Metin alanı bir şifreyle ilgiliyse metin alanının kullanıcının girişini gizlemesi için "textPassword"
değerini kullanın:
<EditText android:id="@+id/password" android:hint="@string/password_hint" android:inputType="textPassword" ... />
android:inputType
özelliğiyle belgelenmiş birkaç olası değer vardır. Giriş yöntemi görünümünü ve ek davranışları belirtmek için bazı değerleri birleştirebilirsiniz.
Yazım önerilerini ve diğer davranışları etkinleştir
android:inputType
özelliği, giriş yöntemi için çeşitli davranışlar belirlemenizi sağlar. En önemlisi, metin alanınız temel metin girişi (örneğin metin mesajı) için tasarlanmışsa "textAutoCorrect"
değeriyle otomatik yazım düzeltmeyi etkinleştirin.
android:inputType
özelliğiyle farklı davranışları ve giriş yöntemi stillerini birleştirebilirsiniz. Örneğin, bir cümlenin ilk kelimesine büyük harfle başlayan ve yazım hatalarını otomatik olarak düzelten bir metin alanının nasıl oluşturulacağı aşağıda açıklanmıştır:
<EditText android:id="@+id/message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputType= "textCapSentences|textAutoCorrect" ... />
Giriş yöntemi işlemini belirtin
Çoğu yumuşak giriş yöntemi, alt köşede mevcut metin alanı için uygun olan bir kullanıcı işlem düğmesi sağlar. Metin alanınız çok satırlı metni (android:inputType="textMultiLine"
ile olduğu gibi) desteklemediği sürece, sistem bu düğmeyi varsayılan olarak İleri veya Bitti işlemi için kullanır. Bu durumda işlem düğmesi satır başı olur. Ancak, Gönder veya Git gibi metin alanınız için daha uygun olabilecek diğer işlemler belirtebilirsiniz.
Klavye işlem düğmesini belirtmek için "actionSend"
veya "actionSearch"
gibi bir işlem değeriyle android:imeOptions
özelliğini kullanın. Örneğin:
<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" />
Daha sonra, EditText
öğesi için bir TextView.OnEditorActionListener
tanımlayarak işlem düğmesine basmaları dinleyebilirsiniz. İşleyicinizde, aşağıdaki örnekte gösterildiği gibi, EditorInfo
sınıfında tanımlanan uygun IME işlem kimliğini (ör. IME_ACTION_SEND
) yanıtlayın:
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; } });
Otomatik tamamlama önerilerinde bulunma
Kullanıcılar yazarken öneriler sunmak istiyorsanız AutoCompleteTextView
adlı bir EditText
alt sınıfını kullanabilirsiniz.
Otomatik tamamlamayı uygulamak için metin önerilerini sağlayan bir Adapter
belirtmeniz gerekir. Verilerin nereden geldiğine (ör. bir veritabanından veya diziden) bağlı olarak birkaç bağdaştırıcı kullanılabilir.
Aşağıdaki prosedürde, ArrayAdapter
kullanarak bir diziden öneriler sağlayan bir AutoCompleteTextView
öğesinin nasıl oluşturulacağı açıklanmaktadır:
AutoCompleteTextView
öğesini düzeninize ekleyin. Burada, yalnızca metin alanını içeren bir düzen gösterilmektedir:<?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" />
- Tüm metin önerilerini içeren diziyi tanımlayın. Örneğin, aşağıdaki ülke adları dizisi verilmiştir:
<?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>
Activity
veyaFragment
içinde, önerileri sağlayan bağdaştırıcıyı belirtmek için aşağıdaki kodu kullanın: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);
Yukarıdaki örnekte,
countries_array
dize dizisindeki her bir öğeyisimple_list_item_1
düzeninde bulunan birTextView
öğesine bağlamak için yeni birArrayAdapter
başlatılır. Bu, Android tarafından sağlanan ve listedeki metinler için standart bir görünüm sağlayan düzendir.-
setAdapter()
numaralı telefonu arayarak adaptörüAutoCompleteTextView
cihazına atayın.