【发布时间】:2020-03-13 11:28:20
【问题描述】:
AlertDialog(Material) 在尝试读取 editText 内容时崩溃。
警报对话框:
MaterialAlertDialogBuilder(activity)
.setTitle(title)
.setMessage(message)
.setView(R.layout.dialog_settings_entry)
.setPositiveButton(getString(R.string.text_change)) { dialog, which ->
etUserInput.hint = message
sgr = etUserInput.text.toString() // << crashes here
dialog.dismiss()
}
.setNegativeButton(getString(android.R.string.cancel)) { dialog, _ ->
dialog.dismiss()
}
.show()
点击正面按钮结果如下:
java.lang.IllegalStateException: etUserInput must not be null
at com.home.profile.SettingsFragment$buildAlertDialog$1.onClick(SettingsFragment.kt:332)
at androidx.appcompat.app.AlertController$ButtonHandler.handleMessage(AlertController.java:167)
etUserInput 是单独布局中的简单editText。 不确定崩溃原因。希望对它有任何见解或任何有用的材料示例。
【问题讨论】:
-
在哪里初始化 EditText
etUserInput?我想你忘了初始化它 -
我猜这是 kotlin syntetics?如果是这样,包含
etUserInput的视图是否在当前屏幕中膨胀? -
是的,
etUserInput通过 Kotlin 合成导入膨胀。 -
即使尝试过尝试,
etUserInput.text?.let{ sgr = it.toString() }但没有运气!
标签: android android-edittext illegalstateexception material-dialog