Saat pengguna mengklik EditView
, Android membuka keyboard sehingga pengguna dapat menulis di EditView
.
Masalahnya, saat pengguna selesai menulis, tidak ada cara untuk menyembunyikan keyboard. Pengguna harus menekan tombol kembali untuk menyembunyikan keyboard.
Apakah ada cara untuk menampilkan Done
tombol di keyboard yang akan menyembunyikan keyboard?
Jawaban:
Gunakan TextView.setImeOptions dan teruskan actionDone. Suka
textView.setImeOptions(EditorInfo.IME_ACTION_DONE);
sumber
textView.setImeOptions(EditorInfo.IME_ACTION_DONE);
textView.singleLine(true)
agar ini bekerja secara terprogram.Pertama, Anda perlu mengatur
android:imeOptions
atribut sama denganactionDone
untuk EditText target Anda seperti yang terlihat di bawah ini. Itu akan mengubah tombol 'KEMBALIKAN' di keyboard lunak EditText menjadi tombol 'SELESAI'.sumber
android:singleLine="true"
agar ini berfungsi melalui xmlSertakan keduanya
imeOptions
dansingleLine
:sumber
Dalam file XML berfungsi dengan baik. Tetapi ini juga akan menyebabkan
editText
untuk tetap mengetik dalam satu baris yang mungkin tidak Anda inginkan. Jadi menambahkan mengikuti ke kode Anda akan memastikan bahwa Anda tidak akan berakhir mengetik semuanya dalam satu baris.sumber
Untuk menyelesaikan Tombol
editText.setImeOptions(EditorInfo.IME_ACTION_DONE);
dan
android:inputType="text"
dalam xmlUntuk penanganan selesai diklik dari keyboard
`
sumber
Gunakan ini:
sumber
actionDone
juga, kalau-kalau beberapa perangkat bereaksi berbeda.Gunakan dua baris ini untuk Anda
EditText
atau Anda dapat mencapainya secara terprogram dengan baris ini.
sumber
Jika properti tidak berubah untuk widget mungkin lebih baik digunakan seperti
android:imeOptions="actionDone"
dixml
file layout .sumber
Menggunakan:
sumber
Untuk kode:
sumber
ActionDone digunakan saat mengklik tombol berikutnya di keyboard saat keyboard bersembunyi. Gunakan di Edit Teks atau AppcompatEdit
XML
1.1 Jika Anda menggunakan AppCompatEdittext
1.2 Jika Anda menggunakan Edittext
JAWA
sumber
Saya harus menunjukkan itu karena banyak orang dapat berjuang untuk itu tanpa mengetahui masalahnya.
Jika Anda ingin kb bersembunyi saat mengklik
Done
, dan Anda mengaturandroid:imeOptions="actionDone"
&android:maxLines="1"
tanpa mengatur EditText Anda TIDAKinputType
akan bekerja sebagai default untuk EditText tidak seperti yang dipikirkan banyak orang.inputType
"text"
jadi, pengaturan hanya
inputType
akan memberikan hasil yang Anda inginkan apapun apa yang Anda pengaturannya seperti"text"
,"number"
, ... dll.sumber
Sebenarnya Anda dapat mengatur teks khusus ke tombol biru kecil itu. Di file xml gunakan saja
di EditText Anda.
Atau dalam penggunaan file java
Saya memilih IME_ACTION_DONE secara sewenang-wenang sebagai contoh dari apa yang harus dimasukkan di parameter kedua untuk fungsi ini. Daftar lengkap tindakan ini dapat ditemukan di sini .
Perlu dicatat bahwa ini tidak akan menyebabkan teks muncul di semua keyboard di semua perangkat. Beberapa keyboard tidak mendukung teks pada tombol itu (mis. Swiftkey). Dan beberapa perangkat juga tidak mendukungnya. Aturan yang baik adalah, jika Anda sudah melihat teks di tombol, ini akan mengubahnya menjadi apa pun yang Anda inginkan.
sumber
Solusi Kotlin
Cara langsung untuk menangani keyboard sembunyikan + tindakan selesai di Kotlin adalah:
Ekstensi Kotlin
Gunakan ini untuk memanggil
edittext.onDone {/*action*/}
kode utama Anda. Menjaga agar lebih mudah dibaca dan dipeliharaEkstensi Keyboard Tambahan
Jika Anda ingin lebih banyak cara untuk menyederhanakan bekerja dengan keyboard (tunjukkan, tutup, fokus): Baca posting ini
sumber
gunakan ini dalam pandanganmu
sumber
Jika Anda menggunakan
maka Anda harus menggunakan
maka hanya Anda yang dapat melihat tombol Tindakan Selesai di Keyboard.
sumber
Jika Anda tidak menginginkan tombol sama sekali (mis. Anda mengembangkan GUI untuk orang buta di mana ketukan tidak dapat diposisikan dan Anda mengandalkan ketukan tunggal / ganda / panjang):
Atau di Kotlin:
sumber