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.
Ö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 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
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:
<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.
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
:
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" />
- 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>
Activity
veyaFragment
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 dizisiTextView
simple_list_item_1
düzeni. Bu, Android tarafından sağlanan bir düzendir ve standart görünümü belirtir.-
Şu numarayı arayarak adaptörü
AutoCompleteTextView
cihazına atayın:setAdapter()
.