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

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

Her metin alanında bir e-posta adresi, telefon numarası veya düz metin. Uygulamanızdaki her metin alanının giriş türünü belirtmeniz gerekir. Böylece, sistem dokunmatik klavye gibi uygun yumuşak giriş yöntemini kullanın.

Bir giriş yöntemiyle kullanılabilen düğme türünün 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 Bitti veya İleri gibi bir işlem düğmesi içeren satır başı karakteri. Bu sayfada, en iyi uygulamaları paylaşacağım.

Klavye türünü belirtme

Metin alanlarınızın giriş yöntemini her zaman android:inputType özelliğini <EditText> öğesi.

telefon girişi
Şekil 1. phone giriş türü.

Örneğin, bir telefon numarası girmek için giriş yöntemi isterseniz "phone" değer:

<EditText
    android:id="@+id/phone"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:hint="@string/phone_hint"
    android:inputType="phone" />
metinŞifre giriş türü
Şekil 2. textPassword giriş türü.

Metin alanı bir şifre içinse metin alanında "textPassword" değerini kullanın. kullanıcının girişini gizler:

<EditText
    android:id="@+id/password"
    android:hint="@string/password_hint"
    android:inputType="textPassword"
    ... />

android:inputType özelliğiyle belgelenen birkaç olası değer vardır. Ayrıca, giriş yöntemi görünümünü ve diğer öğeleri eklemek için ve bunları kontrol etmenizi sağlar.

Yazım önerilerini ve diğer davranışları etkinleştir

otomatik düzeltme
Şekil 3. textAutoCorrect eklendiğinde otomatik düzeltme sağlanır yazım yanlışı.

android:inputType özelliği, giriş için çeşitli davranışları belirtmenizi sağlar. yöntemidir. En önemlisi, metin alanınız temel metin girişine yönelikse (örneğin, kısa mesaj - "textAutoCorrect" ile otomatik yazım düzeltme özelliğini etkinleştirin değer.

Farklı davranışları ve giriş yöntemi stillerini android:inputType özelliği için de kullanılmaktadır. Örneğin, Yeşil Ofis web sitesinde bir metin alanını bir cümlenin ilk kelimesine büyük harfle başlar ve yazım hatalarını otomatik olarak düzeltir:

<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ına girin. Sistem, varsayılan olarak Sonraki veya Metin alanınız çok satırlı metni desteklemiyorsa tamamlandı işlem (örneğin: android:inputType="textMultiLine" - bu durumda işlem düğmesi bir taşıyıcıdır dön. Ancak metin alanınız için daha uygun olabilecek diğer işlemleri belirtebilirsiniz. (ör. Gönder veya Git).

Klavye işlem düğmesini belirtmek için android:imeOptions "actionSend" veya "actionSearch" gibi bir işlem değerine sahip olmalıdır. Örneğin, örnek:

gönder düğmesi
Şekil 4. Şu ifadeyi gönderdiğinizde Gönder düğmesi görünür: android:imeOptions="actionSend"
<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, bir TextView.OnEditorActionListener. EditText öğesi için. uygun IME işlem kimliğine yanıt verin ve EditorInfo sınıf, örneğin: IME_ACTION_SEND, aşağıdaki örnekte gösterildiği gibi:

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 bulunun

Kullanıcılar yazarken önerilerde bulunmak istiyorsanız EditText çağrıldı AutoCompleteTextView. Otomatik tamamlamayı uygulamak için bir Metni sağlayan Adapter öneriler. Verilerin nereden geldiğine bağlı olarak birden fazla bağdaştırıcı vardır. Örneğin, seçebilirsiniz.

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

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

  1. AutoCompleteTextView öğesini düzeninize ekleyin. Burada yalnızca metin içeren bir düzen alan:
    <?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 şöyle bir ülke adları dizisi:
    <?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çin aşağıdaki kodu kullanın: Önerileri sağlayan bağdaştırıcıyı belirtin:

    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, ArrayAdapter countries_array dize dizisi TextView simple_list_item_1 düzeni. Bu, Android tarafından sağlanan bir düzendir ve standart görünümü belirtir.

  4. Şu numarayı arayarak adaptörü AutoCompleteTextView cihazına atayın: setAdapter().