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 sanal giriş yöntemini göstermesi için uygulamanızdaki her metin alanı için giriş türünü belirtmeniz gerekir.
Giriş yöntemiyle kullanılabilen düğme türünün yanı sıra giriş yönteminin yazım önerileri sunup sunmadığı, yeni cümleleri büyük harfle başlatıp başlatmadığı ve satır başı düğmesini Bitti veya Sonraki 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 açıklanmaktadır.
Klavye türünü belirtme
<EditText> öğesine android:inputType özelliğini ekleyerek metin alanlarınızın giriş yöntemini her zaman bildirin.
phone giriş türü.Ö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" />
textPassword giriş türü.Metin alanı şifre içinse 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 ilgili olarak belgelenmiş çeşitli olası değerler vardır. Giriş yöntemi görünümünü ve ek davranışları belirtmek için bu değerlerden bazılarını birleştirebilirsiniz.
Yazım önerilerini ve diğer davranışları etkinleştirme
textAutoCorrect eklediğinizde yazım hataları otomatik olarak düzeltilir.android:inputType özelliği, giriş yöntemi için çeşitli davranışlar belirtmenize olanak tanır. En önemlisi, metin alanınız temel metin girişi için tasarlanmışsa (ör. kısa mesaj için) "textAutoCorrect" değeriyle otomatik yazım düzeltmeyi etkinleştirin.
android:inputType özelliğini kullanarak farklı davranışları ve giriş yöntemi stillerini birleştirebilirsiniz. Örneğin, bir cümlenin ilk kelimesini büyük harfle yazan ve yazım hatalarını otomatik olarak düzelten bir metin alanı oluşturmak için aşağıdaki adımları uygulayabilirsiniz:
<EditText android:id="@+id/message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputType= "textCapSentences|textAutoCorrect" ... />
Giriş yöntemi işlemini belirtme
Çoğu sanal giriş yöntemi, alt köşede mevcut metin alanı için uygun bir kullanıcı işlemi düğmesi sağlar. Metin alanınız çok satırlı metni desteklemediği sürece (ör. android:inputType="textMultiLine") sistem, varsayılan olarak bu düğmeyi Sonraki veya Bitti işlemi için kullanır. Bu durumda işlem düğmesi satır başı olur. Ancak metin alanınız için daha uygun olabilecek başka işlemler (ör. Gönder veya Git) 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:
android:imeOptions="actionSend" beyan ettiğinizde Gönder düğmesi görünür.<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" />
Ardından, EditText öğesi için bir
TextView.OnEditorActionListener
tanımlayarak işlem düğmesine basma işlemlerini dinleyebilirsiniz. Dinleyicinizde, aşağıdaki örnekte gösterildiği gibi EditorInfo sınıfında tanımlanan uygun IME işlem kimliğine (ör. IME_ACTION_SEND) yanıt verin:
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 önerileri sunma
Kullanıcılara yazarken öneriler sunmak istiyorsanız EditText adlı sınıfın bir alt sınıfı olan AutoCompleteTextView sınıfını kullanabilirsiniz.
Otomatik tamamlama özelliğini uygulamak için metin önerileri sağlayan bir Adapter belirtmeniz gerekir. Verilerin nereden geldiğine bağlı olarak (ör. veritabanı veya dizi) çeşitli bağdaştırıcılar kullanılabilir.
AutoCompleteTextView örneği.Aşağıdaki prosedürde, AutoCompleteTextView oluşturma işlemi açıklanmaktadır. Bu işlem, ArrayAdapter kullanarak bir diziden öneriler sunar:
AutoCompleteTextViewöğesini düzeninize ekleyin. Yalnızca metin alanının bulunduğu bir düzeni aşağıda görebilirsiniz:<?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, ülke adlarından oluşan bir dizi aşağıda 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>
ActivityveyaFragmentiç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);
Önceki örnekte,
countries_arraydize dizisindeki her öğeyisimple_list_item_1düzeninde bulunan birTextViewöğesine bağlamak için yeni birArrayAdapterbaşlatılıyor. Bu, Android tarafından sağlanan ve listedeki metinler için standart bir görünüm sunan bir düzendir.-
setAdapter()numarasını arayarak adaptörüAutoCompleteTextViewcihazına atayın.