在viewpager中更改方向后,对话框为null

时间:2014-03-17 11:31:01

标签: android android-fragments android-viewpager android-configchanges

每次刷卡都会有一个新的页面加载现在我先把所有的东西都用在肖像画中,现在我正在努力让它与风景和肖像一起工作。但是当我旋转屏幕时,我会在NullPointerException上获得Dialog

MainActivity的内部FragmentStatePagerAdapter内导致它的功能:

@Override
    public void onPageSelected(int position)
    {
        // TODO Auto-generated method stub
        currentSelectedFragmentPosition = position;
        frag.onPageVisible(currentSelectedFragmentPosition);
            frag2.onPageVisible(currentSelectedFragmentPosition);
            frag3.onPageVisible(currentSelectedFragmentPosition);
    }

片段内的函数:

public void onPageVisible(int position)
{
     startNewAsyncTask();           
}

对话框在onCreateView内实例化,并记录它不为空。 当我在onPageVisible内登录时,它会返回null,当我这样做时 在mProgress = new ProgressDialog(getActivity());onPageVisible它仍然会给出一个nullpointer但是然后在该行上。

我真的不明白为什么要在onCreateView中设置。

enter image description here

2 个答案:

答案 0 :(得分:0)

假设您使用的是DialogFragment,Android会在onCreate为您重新创建对话框。如果savedInstanceState不为空,则可以通过onCreate中的标记找到现有对话框。

答案 1 :(得分:0)

如果您不想重新创建活动或片段,那么只需覆盖类中扩展Activity类的onConfigurationChanged(){}方法。

每当您将“从”到“纵向”更改为“横向”或“反对”时,此方法都会保留应用的状态。