Пока я гуглил, я наткнулся на этот вопрос, который должен ответить на ваш.
Как отключить / включить диалог отрицательных положительных кнопок?
Я скомпилировалкод в kotlin, и он, кажется, работает, или, по крайней мере, компилируется: D
fun dialogStuff() {
val builder = AlertDialog.Builder(this)
builder.setIcon(android.R.drawable.ic_dialog_info)
builder.setTitle("Alert dialog title")
builder.setMessage("This is the example code snippet to disable button if edittext attached to dialog is empty.")
builder.setPositiveButton("PositiveButton"
) { arg0, arg1 ->
// DO TASK
}
builder.setNegativeButton("NegativeButton"
) { arg0, arg1 ->
// DO TASK
}
val input = EditText(this)
val lp = LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT)
input.layoutParams = lp
builder.setView(input)
val dialog = builder.create()
dialog.show()
(dialog as AlertDialog).getButton(AlertDialog.BUTTON_POSITIVE).isEnabled = false
input.addTextChangedListener(object : TextWatcher {
override fun onTextChanged(s: CharSequence, start: Int, before: Int,
count: Int) {
}
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int,
after: Int) {
}
override fun afterTextChanged(s: Editable) {
// Check if edittext is empty
dialog.getButton(AlertDialog.BUTTON_POSITIVE).isEnabled = !TextUtils.isEmpty(s)
}
})
}