Когда я использую SHOW_FORCED, клавиатура открыта, но когда я закрываю alertDialog, клавиатура меняется на текстовую раскладку и не скрывается, клавиатура закрывается только при нажатии кнопки «Назад» на Android, имитация кнопки «Назад» в коде неработа.
При использовании SHOW_IMPLICIT не открывать клавиатуру автоматически.
*** Код с комментариями работает, но ...
private fun insertItemQuantity(orderDetail: OrderDetail) {
val modal = alert {
customView {
verticalLayout {
title = getString(R.string.insert_quantity)
val quantity = editText {
keyListener = DigitsKeyListener.getInstance("0123456789")
inputType = InputType.TYPE_CLASS_NUMBER or InputType.TYPE_NUMBER_FLAG_DECIMAL or
InputType.TYPE_NUMBER_FLAG_SIGNED
showSoftInputOnFocus = true
isFocusable = true
isFocusableInTouchMode = true
}
positiveButton(getString(R.string.confirm)) {
val c = quantity.text.toString()
if (c.isBlank() )
toastCustomWarning(getString(R.string.field_cannot_be_empty))
else {
if (c.toDouble() > 0) {
RealmRepository.getRealm().beginTransaction()
orderDetail.quantity = c.toDouble()
orderDetail.uuid = UUID.randomUUID().toString()
RealmRepository.getRealm().commitTransaction()
orderItemActivityViewModel.addOrderItem(orderDetail)
} else {
toastCustomWarning(getString(R.string.field_cannot_be_empty_or_zero))
}
}
}
negativeButton(getString(R.string.cancel)) {
quantity.clearFocus()
}
neutralPressed("Neutral"){
}
}
}
}
//quantity.requestFocus()
/*val inputManager: InputMethodManager =
getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
inputManager.toggleSoftInput(
InputMethodManager.SHOW_FORCED,
InputMethodManager.HIDE_IMPLICIT_ONLY
)*/
var inputMethodManager: InputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.showSoftInput(quantity, InputMethodManager.SHOW_IMPLICIT)
//inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY)
modal.iconResource = R.drawable.ic_logo
modal.show()
}