我想用我的自定义对话框生成器创建一个通用的AlertView对话框。我的对话框应该有一些TextViews和Buttons,只有在设置了较早的文本时才应显示它们。我的问题是,在找不到NullPointerException的情况下,我找不到可以安全访问这些视图的任何地方。
这是我的DialogBuilder类
class DialogBuilder : DialogFragment() {
...
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val builder = AlertDialog.Builder(activity)
val inflater = activity?.layoutInflater
val view = inflater?.inflate(R.layout.dialog_builder_fragment, null)
builder.setView(view)
val dialog = builder.create()
fillViews()
initListeners()
return dialog
}
...
private fun fillViews() {
if (headline.isNotBlank()) {
headline_text_view.text = headline
headline_text_view.visibility = View.VISIBLE
}
...
}
当我想要设置标题文本时,在fillViews中抛出异常。我尝试了onViewCreated(),onStart()...,但是似乎没有任何效果。我该如何实施?
假设您的headLine和headline_text_view在dialog_builder_fragment内部。您应该将view作为fillViews函数参数传递,然后像这样调用您的textviews。
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val builder = AlertDialog.Builder(activity)
val inflater = activity?.layoutInflater
val view = inflater?.inflate(R.layout.dialog_builder_fragment, null)
builder.setView(view)
val dialog = builder.create()
fillViews(view)
initListeners()
return dialog
}
...
private fun fillViews(view: View) {
if (view.headline.isNotBlank()) {
view.headline_text_view.text = headline
view.headline_text_view.visibility = View.VISIBLE
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句