imeOptions "actionNext" programlı olarak - bir sonraki alana nasıl geçilir?


92

Mizanpaj XML'de sanal klavyede android:imeOptions="actionNext"hangi ek Nextdüğmeyi belirtmek mümkündür ve üzerine tıklayarak odak bir sonraki alana atlar.

Bu, programlı olarak nasıl yapılır - örneğin, bir sonraki alana gitmek için bazı olay tetikleme odağına dayalı olarak?

Yanıtlar:


192

IME seçenekleri için EditorInfo sınıfındaki sabitleri kullanabilirsiniz. sevmek,

editText.setImeOptions(EditorInfo.IME_ACTION_NEXT);

evet yoksa yeni bir satır ekler ve ona atlar =)
İlker Baltacı

2
Bu, OP'nin sorusuna nasıl cevap verir? Bu otomatik olarak bir sonraki alana atlamaz.
hitmaneidos

27

Bir sonraki odaklanabilir alanı arayın ve ardından çağırın requestFocus().

TextView nextField = (TextView)currentField.focusSearch(View.FOCUS_RIGHT);
nextField.requestFocus();

2
Bu sorunun başlığına atıfta bulunularak doğru bir cevap değil, ancak teknik olarak geçerli bir cevap. Aşağıdaki cevap daha uygundur.
Sean Glover

4
@SeanGlover asla aşağıdaki gibi kelimeler kullanmamalısınız çünkü cevapların konumu değişmeye devam ediyor.
Nike15

20

Sadece öneri, kullanıyorsanız

     EditTextSample.setImeOptions(EditorInfo.IME_ACTION_DONE); 

işe yaramazsa, EditText'inizin tek bir satır kullandığından emin olun.

Örneğin:

       editTextSample.setSingleLine();

1
Teşekkürler. Bu kabul edilmiş bir cevap olmalıdır. SetImeOptions ÖNCE setSingleLine () çağırmanız yeterlidir.
Herman

8

Sanal QWERTYklavyede bulunan varsayılan tuşlar dışında her zaman ekstra tuşlar eklemek gerekir .

XML kullanma

<EditText android:text="@+id/EditText01" 
android:id="@+id/EditText01"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:imeOptions="actionDone"/>

By Programmatic Way

An EditorInfo, Android uygulamanızda herhangi bir tür kullanıcı girdisiyle uğraşmanız gerektiğinde en kullanışlı sınıftır.

IME_ACTION_DONE: Bu eylem, hiçbir şey girilmeden "tamamlandı" işlemi gerçekleştirir ve IME kapatılır.

 EditTextSample.setImeOptions(EditorInfo.IME_ACTION_DONE);

Daha fazla bilgi için http://developer.android.com/reference/android/view/inputmethod/EditorInfo.html adresini ziyaret edebilirsiniz.


1

Kotlin kolye

editText.imeOptions = EditorInfo.IME_ACTION_DONE

0
editText.setLines(1);
editText.setSingleLine(true);
editText.setImeOptions(EditorInfo.IME_ACTION_GO);

Sorunu çözüyorum, tek satırla emin olun ve enter'a tıkladığınızda sonraki editText'e gidin


0

Benim durumumda, bir imeOptions ayarlayın sorunu düzeltin.

edtAnswer.maxLines = 1
edtAnswer.inputType = InputType.TYPE_CLASS_TEXT
edtAnswer.imeOptions = EditorInfo.IME_ACTION_NEXT

0

Bunu şu şekilde yapabilirsiniz

edittext.imeOptions = EditorInfo.IME_ACTION_DONE //for done button

veya

edittext.imeOptions = EditorInfo.IME_ACTION_NEXT //for next button

Ama ... edittext için filtreler kullanıyorsanız, o zaman ayarlamanız gerektiğini anlamalısınız.

edittext.setSingleLine()
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.