Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android viewpager中方向更改后的对话框为空_Android_Android Fragments_Android Viewpager_Android Configchanges - Fatal编程技术网

Android viewpager中方向更改后的对话框为空

Android viewpager中方向更改后的对话框为空,android,android-fragments,android-viewpager,android-configchanges,Android,Android Fragments,Android Viewpager,Android Configchanges,每次我刷卡都会加载一个新页面,现在我让所有的东西都先在纵向上工作,现在我正试图让它在横向和纵向上工作。但是,当我旋转屏幕时,我将在我的对话框上得到一个NullPointerException 在MainActivity的内部类FragmentStatePagerAdapter中导致它的函数: @Override public void onPageSelected(int position) { // TODO Auto-generated method stub

每次我刷卡都会加载一个新页面,现在我让所有的东西都先在纵向上工作,现在我正试图让它在横向和纵向上工作。但是,当我旋转屏幕时,我将在我的
对话框
上得到一个
NullPointerException

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=newprogressdialog(getActivity())
onPageVisible
中,它仍然会给出一个空指针,但会改为在该行上

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


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

如果不想重新创建活动或片段,则只需在扩展活动类的类中重写onConfigurationChanged(){}方法即可


每当您将应用程序的方向从纵向更改为横向或从纵向更改为横向时,此方法将保留应用程序的状态。

Ooh抱歉,我在异步任务中使用了ProgressDialog。如果(savedInstanceState!=null){mProgress=savedInstanceState.mProgress;},我是否可以执行类似的操作,您必须自己重新创建对话框,如果它是在活动被销毁时显示的。正如我在问题中所说的,我试图重新创建它,但它提供了一个指向该行的空指针。您需要发布堆栈跟踪。我并不介意重新创建,只要它工作。问题是,该对话框在函数或其他内容中设置为空。我无法理解最后一部分对于您的问题,您是否正在尝试在对话框中获取数据?该对话框仅显示AsyncTask正在加载数据。在方向改变之前,它可以正常工作,但是在改变之后,它会抛出一个NullPointerException,所以我正在寻找一种方法来重新创建它或将它取回