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,所以我正在寻找一种方法来重新创建它或将它取回