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

Oluşturma yöntemini deneyin
Jetpack Compose, Android için önerilen kullanıcı arayüzü araç setidir. Oluşturma'da dokunma ve giriş işlevini 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ü 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.

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 ş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

otomatik düzeltme
Şekil 3. textAutoCorrect eklendiğinde, yazım hataları için otomatik düzeltme sağlanır.

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:

gönder düğmesi
Şekil 4. android:imeOptions="actionSend" özelliğini belirttiğ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" />

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.

metin önerileri
Şekil 5. Metin önerileri içeren AutoCompleteTextView örneği.

Aşağıdaki prosedürde, ArrayAdapter kullanarak bir diziden öneriler sağlayan bir AutoCompleteTextView öğesinin nasıl oluşturulacağı açıklanmaktadır:

  1. 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" />
    
  2. 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>
    
  3. Activity veya Fragment 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 öğ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 metinler için standart bir görünüm sağlayan düzendir.

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