在DialogFragment类中调用getActivity()的一般准则

时间:2016-01-30 21:31:34

标签: android android-fragments android-fragmentactivity android-dialogfragment

如上所述here

" be careful to call getActivity() only when the fragment is attached to an activity. When the fragment is not yet attached, or was detached during the end of its lifecycle, getActivity() will return null. "

关于在getActivity()内拨打DialogFragment,我有几个问题。

  1. 有哪些不同的场景可以让DialogFragment意外地从其父Activity中分离出来或者在第一时间没有附加?事情是我在调用getActivity()在onPositiveButtonClick的监听器中,并收到了几个崩溃报告(空指针异常)。我无法重现崩溃,屏幕方向似乎无法解决问题。

  2. 关于如何使用getActivity()以及最小损害的一些推荐指南?我已阅读其他一些建议的stackoverflow帖子

    a)覆盖onAttach()方法。
    public void onAttach(Activity activity) { super.onAttach(activity); mActivity = activity; }

    我更喜欢这个,因为它保留了Activity的一个实例。此外,我如何确保活动的本地实例永远不会设置为null。想在使用它之前了解它的优点和缺点。

    b)是否会使用接口帮助将onClick()实现委托给调用活动?如果是,怎么做?

  3. 如果所有这一切都是不可避免的,那么除了让应用程序崩溃之外,我看不到更好的选择。我无法显示吐司,因为getActivity()为null并且会避免让onClick操作无声地失败。

    任何指针都会非常感激。谢谢!

0 个答案:

没有答案