gpt4 book ai didi

Android:旋转时对话框中的 NullPointerException

转载 作者:搜寻专家 更新时间:2023-11-01 08:03:22 27 4
gpt4 key购买 nike

很抱歉,如果之前有人问过这个问题,但我找不到针对我的具体案例的答案。也很抱歉我是新手,有点笨。

问题:我正在显示 fragment 中的对话框并在构造函数方法中传递 context 因为我需要在对话框中使用上下文来注册 broadcastrecievers 等。

DialogFragment fragmentDialog = MyDialog.myConstructor(getActivity());
fragmentDialog.show(getFragmentManager(), "dialog");

然后在 MyDialog 类中,我将上下文存储在一个实例变量中。旋转设备时出现问题,当我尝试在对话框中再次使用上下文时出现 nullPointerException。

这可以用一些简单的方法解决吗?

最佳答案

如果设备旋转,Activity 将被销毁并重新创建。因此,您传递给 Fragment 的 Context 指向被销毁的 Activity 。

你可以使用 setRetainInstance(true)在你的 fragment 中。这样,您的 Fragment 将在 Activity 的重新创建中幸存下来。

要解决 NPE,如果重新创建 Activity,则必须将 Context 传递给 Fragment。那么这个Context属于新的Activity。

事实上,如果没有此更新,指向 Activity 的每一行代码(如 getActivity() 或 getFragmentManager())都将导致 NPE。

关于Android:旋转时对话框中的 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17867184/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com