【问题标题】:Avoid activity!! when extending DialogFragment避免活动!!扩展 DialogFragment 时
【发布时间】:2023-04-07 18:17:01
【问题描述】:

我正在使用 DialogFragment 并且在 onCreateDialog 中我需要使用 Activity 的引用。 问题是,使用最新的支持库 (28.0.0),活动变为可为空,因此在 onCreateDialog 中使用 AlertDialog.Builder 时,我不得不使用 !!

override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
    [...]
    val dialog = AlertDialog.Builder(activity!!).setTitle(R.string.title)[...].create()
    [...]
    return dialog
}

我无法添加任何空值检查,因为无论如何我都需要返回一个对话框。有什么干净的解决方案可以避免使用!!运营商?

【问题讨论】:

    标签: android kotlin dialogfragment


    【解决方案1】:

    使用requireActivity(),但请记住,如果您的片段尚未绑定到活动,它将抛出IllegalStateException

    【讨论】:

    • 请注意,框架永远不会在分离的片段上调用onCreateDialog()。只要你没有疯到自己打电话,你应该没问题。
    • 没错。有一些极端情况(公平地说很少见)可能会发生,但没什么可偏执的
    猜你喜欢
    • 2020-06-24
    • 2023-03-07
    • 1970-01-01
    • 2021-08-29
    • 1970-01-01
    • 2011-03-12
    • 2019-07-10
    • 2011-09-25
    • 1970-01-01
    相关资源
    最近更新 更多