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?

Jawaban:


192

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

editText.setImeOptions(EditorInfo.IME_ACTION_NEXT);

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();

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();

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


1

Liontin kotlin

editText.imeOptions = EditorInfo.IME_ACTION_DONE

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


0

Dalam kasus saya, atur imeOptions untuk memperbaiki masalah.

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

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()
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.