0

在我的应用程序中,我曾经在我的片段中打开一个新对话框。我使用的是 FragmentPagerAdapter。每当我从我的代码中打开一个新活动时,我都会收到一个空指针异常

java.lang.NullPointerException
    at android.support.v4.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManager.java:1576)

经过大量搜索后,我得出结论,我应该使用FragmentStatePagerAdapter而不是FragmentAdapter. 现在这解决了我的空指针异常问题。使用片段适配器时,我在

@Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        if (isVisibleToUser) {
                   //
        }
    }

知道 Fragment 何时对用户可见。如何不调用此函数。我究竟做错了什么 ?谁能指出我使用 Fragment Pager 或未使用 FragmentStatePagerAdaptersetUserVisibleHint调用的 NULL 指针异常的解决方案?

4

1 回答 1

0

FragmentStatePagerAdapter 有一个错误,它没有正确调用 setUserVisibleHint。它已在此提交中修复:https ://github.com/android/platform_frameworks_support/commit/bf7974e46b008ffa4a16c61386735c4817d343aa

确保您使用的是 Android 支持库的修订版 11 或更高版本,网址为http://developer.android.com/tools/support-library/index.html

Android 支持库,第 11 版(2012 年 11 月)

v4 支持库的更改:

修复了 FragmentStatePagerAdapter 中用户可见提示的问题。

于 2013-08-08T16:46:31.347 回答