Her metin alanı, e-posta adresi, telefon numarası veya düz metin gibi belirli bir metin girişi türünü bekler. Sistemin dokunmatik klavye gibi uygun bir yumuşak giriş yöntemi göstermesi için uygulamanızdaki her metin alanı için giriş türünü belirtmeniz gerekir.
Giriş yönteminde kullanılabilen düğme türlerinin yanı sıra giriş yönteminin yazım önerileri sağlayıp sağlamadığı, yeni cümleleri büyük harfle yazıp yazmadığı ve satır sonu düğmesini Bitti veya Sonraki gibi bir işlem düğmesiyle değiştirip değiştirmediği gibi davranışları da belirtebilirsiniz. Bu sayfada, bu özellikleri nasıl belirteceğiniz gösterilmektedir.
Klavye türünü belirtin
Metin alanlarınızın giriş yöntemini her zaman <EditText>
öğesine android:inputType
özelliğini ekleyerek belirtin.
![telefon girişi](https://developer.android.com/static/images/ui/edittext-phone.png?authuser=002&hl=tr)
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ü](https://developer.android.com/static/images/training/input/ime_password.png?authuser=002&hl=tr)
textPassword
Giriş türü.Metin alanı bir ş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 birlikte açıklanan birkaç olası değer vardır. Giriş yönteminin 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
![otomatik düzeltme](https://developer.android.com/static/images/training/input/ime_autocorrect.png?authuser=002&hl=tr)
textAutoCorrect
eklemek, yazım hataları için otomatik düzeltme sağlar.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 tasarlandıysa (ör. kısa mesaj) "textAutoCorrect"
değerini kullanarak otomatik yazım düzeltmesini 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 harfe dönüştüren ve yazım hatalarını otomatik olarak düzelten bir metin alanı oluşturmak için aşağıdaki adımları uygulayın:
<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 yumuşak giriş yöntemi, alt köşede mevcut metin alanına 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. Aksi takdirde işlem düğmesi satır başı karakteri olur. Ancak metin alanınız için daha uygun olabilecek başka işlemler de belirtebilirsiniz (ör. Gönder veya Git).
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:
![gönder düğmesi](https://developer.android.com/static/images/ui/edittext-actionsend.png?authuser=002&hl=tr)
android:imeOptions="actionSend"
bildirirken 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 sağlama
Kullanıcılar yazarken onlara öneriler sunmak istiyorsanız EditText
sınıfının AutoCompleteTextView
adlı alt sınıfını kullanabilirsiniz.
Otomatik doldurmayı uygulamak için metin önerileri sağlayan bir Adapter
belirtmeniz gerekir. Verilerin kaynağına (ör. veritabanı veya dizi) bağlı olarak kullanılabilen çeşitli bağdaştırıcılar vardır.
![metin önerileri](https://developer.android.com/static/images/ui/edittext-autocomplete.png?authuser=002&hl=tr)
AutoCompleteTextView
örneği.Aşağıdaki prosedürde, ArrayAdapter
kullanarak bir diziden öneriler sunan bir AutoCompleteTextView
'ün nasıl ayarlanacağı açıklanmaktadır:
AutoCompleteTextView
öğesini düzeninize ekleyin. Aşağıda yalnızca metin alanının bulunduğu bir düzen verilmiştir:<?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>
Activity
veyaFragment
dosyanızda, ö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_array
dize dizisindeki her öğ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 metin için standart bir görünüm sunan bir düzendir.-
setAdapter()
numaralı telefonu arayarak adaptörüAutoCompleteTextView
cihazına atayın.