Giriş yöntemi türünü belirtin

Oluşturma yöntemini deneyin
Android için önerilen kullanıcı arayüzü araç seti Jetpack Compose'dur. Oluştur'da dokunma ve girişi nasıl kullanacağınızı öğrenin.

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
Şekil 1. 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ü
Şekil 2. 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
Şekil 3. 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
Şekil 4. 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
Şekil 5. Metin önerileri içeren AutoCompleteTextView örneği.

Aşağıdaki prosedürde, ArrayAdapter kullanarak bir diziden öneriler sunan bir AutoCompleteTextView'ün nasıl ayarlanacağı açıklanmaktadır:

  1. 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" />
  2. 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>
  3. Activity veya Fragment 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 öğeyi simple_list_item_1 düzeninde bulunan bir TextView öğesine bağlamak için yeni bir ArrayAdapter 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.

  4. setAdapter() numaralı telefonu arayarak adaptörü AutoCompleteTextView cihazına atayın.