开发者社区> 问答> 正文

DialogFragment.onDismiss()中的空指针异常

我有一个DialogFragment正在使用的子类,但被解散时会崩溃。它并非每次都会发生,而且我似乎无法找到一种模式。崩溃发生在重写onDismiss()函数内部。

   java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter dialog
    at com.foo.MyDialogFragment.onDismiss(Unknown Source:2)

这是DialogInterface参数,它发生在我的任何代码运行之前,因此我无法采取任何措施来阻止它。我无法将参数dialog设为可为空,因为这样会破坏合同,DialogFragment并且不会进行编译。

知道是什么原因造成的,更重要的是,我该怎么办?看来这永远都不应该发生,但我在这里。

展开
收起
Puppet 2020-01-18 10:30:27 823 0
1 条回答
写回答
取消 提交回答
  • 因此,您将DialogFragment子类化了吗?

    然后,您应该只能够重写onDismiss,例如,当对话框不为空时,仅调用super.onDismiss()

    您还可以覆盖onDismiss和Log来查看何时确切调用它

    这也可能起作用:

    
    @Override
    public void dismiss()
    {
        if (getFragmentManager() != null) super.dismiss();
    }
    
    2020-01-18 10:30:42
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载