Saya menggunakan AlertDialog.Builder untuk membuat kotak masukan, dengan EditText sebagai metode masukan.
Sayangnya, Soft Keyboard tidak muncul, meskipun EditText berada dalam fokus, kecuali Anda menyentuhnya lagi secara eksplisit.
Apakah ada cara untuk memaksanya agar meledak?
Saya sudah mencoba yang berikut ini, setelah (AlertDialog.Builder) .show (); tapi tidak berhasil.
InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.showSoftInput(input, InputMethodManager.SHOW_FORCED);
Ada yang bisa membantu?
Terima kasih!!
Jawaban:
Saya telah membuat hal seperti itu
sumber
OnFocusChangeListener
pendekatan tampaknya banyak bagi saya dan menimbulkan masalah. Anda harus membuatAlertDialog
dariAlertDialog.Builder
!setSoftInputMode
garis sebelumnyadialog.show()
atau itu tidak akan berhasil. 1 untuk solusi sederhana yang benar btwSaya sudah berhasil menyelesaikannya seperti ini:
sumber
Saya menemukan bahwa kode yang sama berfungsi dengan baik di Tablet, keyboard muncul, tetapi di Ponsel tidak, jadi meneliti lebih lanjut, tampaknya mengarah ke opsi "sesuaikan".
Saya menggunakan ini, terasa jauh lebih bersih.
sumber
SOFT_INPUT_STATE_ALWAYS_VISIBLE
. SepertiSOFT_INPUT_STATE_ALWAYS_VISIBLE
akan memblokir dialog komponen UI, di manaSOFT_INPUT_ADJUST_RESIZE
dapat mengubah ukuran dan "mendorong" dialog.Dalam kasus saya, satu-satunya cara saya dapat menampilkan keyboard saat Dialog ditampilkan adalah dengan menambahkan ke
DialogFragment
:Catat SOFT_INPUT_STATE_ALWAYS_VISIBLE, bukan SOFT_INPUT_STATE_VISIBLE .
Dari dokumentasi:
sumber
Saat Anda memanggil showDialog untuk menampilkan Dialog yang dibuat menggunakan AlertDialog di onCreateDialog
Anda harus meletakkan kodenya di sini
sumber
Solusi yang jauh lebih baik diberikan di sini .
Tidak ada solusi.
EditText
berperilaku seperti yang diharapkan.sumber
sumber
Ini sudah terjawab di sini . Menggunakan OnFocusChangeListener berhasil untuk saya.
sumber
Dalam kasus saya, SoftInputMode tidak ditampilkan ketika saya mengaturnya sebelum menampilkan dialog (setelah membuatnya). Kode di bawah ini berfungsi untuk saya di mana saya mengatur SoftInputMode setelah menampilkan dialog.
Kotlin:
Jawa:
Saya harap ini membantu siapa saja yang mengalami masalah yang sama dengan saya.
sumber
Coba ini, ini berhasil untuk saya
Jika Anda ingin menampilkan soft keyboard:
Dan jika Anda ingin menyembunyikannya:
sumber
sumber
Masalah ini terjadi ketika EditText ditambahkan setelah AlertDialog.onCreate dipanggil.
https://developer.android.com/reference/androidx/appcompat/app/AlertDialog.Builder
Anda perlu menghapus bendera FLAG_ALT_FOCUSABLE_IM.
Karena AlertDialog.show dipanggil di DialogFragment.onStart, Anda dapat memasukkan kode di DialogFragment.onStart.
Atau Anda dapat menggunakan Dialog.setOnShowListener jika Anda tidak menggunakan DialogFragment.
sumber