imeOptions "actionNext" secara terprogram - bagaimana cara melompat ke bidang berikutnya?

92

Dalam layout XML dimungkinkan untuk menentukan tombol android:imeOptions="actionNext"tambah mana Nextdi keyboard virtual dan dengan mengkliknya - fokus melompat ke bidang berikutnya.

Bagaimana melakukan ini secara terprogram - mis. Berdasarkan beberapa peristiwa pemicu fokus untuk pergi ke bidang berikutnya?

Laimoncijus
sumber

Jawaban:

192

Anda dapat menggunakan konstanta dari kelas EditorInfo untuk opsi IME. Suka,

editText.setImeOptions(EditorInfo.IME_ACTION_NEXT);
Firewall_Sudhan
sumber
ya kalau tidak itu menyisipkan baris baru dan melompat ke itu =)
Ilker Baltaci
2
Bagaimana ini menjawab pertanyaan OP? Ini tidak secara otomatis melompat ke bidang berikutnya.
hitmaneidos
27

Telusuri bidang berikutnya yang dapat difokuskan dan kemudian panggil requestFocus().

TextView nextField = (TextView)currentField.focusSearch(View.FOCUS_RIGHT);
nextField.requestFocus();
Justin
sumber
2
Ini bukanlah jawaban yang benar sehubungan dengan judul pertanyaan ini, tetapi secara teknis merupakan jawaban yang valid. Jawaban di bawah ini lebih tepat.
Sean Glover
4
@SeanGlover Anda tidak boleh menggunakan kata-kata seperti di bawah ini karena posisi jawaban terus berubah.
Nike15
20

Hanya saran, jika Anda menggunakan

     EditTextSample.setImeOptions(EditorInfo.IME_ACTION_DONE); 

tidak berhasil, pastikan EditText Anda menggunakan satu baris.

Misalnya:

       editTextSample.setSingleLine();
ziniestro
sumber
1
Terima kasih. Ini harus menjadi jawaban yang diterima. Panggil saja setSingleLine () SEBELUM setImeOptions.
Herman
8

Selalu ada kebutuhan untuk menambahkan tombol tambahan selain dari tombol default yang tersedia di QWERTYkeyboard virtual .

Menggunakan XML

<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

Sebuah EditorInfokelas paling berguna ketika Anda harus berurusan dengan semua jenis input pengguna dalam aplikasi Android Anda.

IME_ACTION_DONE: Tindakan ini melakukan operasi "selesai" tanpa memasukkan apa pun dan IME akan ditutup.

 EditTextSample.setImeOptions(EditorInfo.IME_ACTION_DONE);

Untuk informasi lebih lanjut, Anda dapat mengunjungi http://developer.android.com/reference/android/view/inputmethod/EditorInfo.html

IntelliJ Amiya
sumber
1

Liontin kotlin

editText.imeOptions = EditorInfo.IME_ACTION_DONE
kuzdu
sumber
0
editText.setLines(1);
editText.setSingleLine(true);
editText.setImeOptions(EditorInfo.IME_ACTION_GO);

Saya memecahkan masalah pastikan dengan satu baris dan pergi editText berikutnya ketika klik enter

Handelika
sumber
0

Dalam kasus saya, atur imeOptions untuk memperbaiki masalah.

edtAnswer.maxLines = 1
edtAnswer.inputType = InputType.TYPE_CLASS_TEXT
edtAnswer.imeOptions = EditorInfo.IME_ACTION_NEXT
Memberikan
sumber
0

Anda dapat melakukannya dengan

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

atau

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

Tapi ... Anda perlu memahami bahwa jika Anda menggunakan filter untuk teks editan, maka Anda perlu menyetelnya

edittext.setSingleLine()
Kishan Solanki
sumber