Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.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碎片不保存状态,旋转/屏幕锁定/返回时崩溃_Android_Xml_Tabs_Views - Fatal编程技术网

Android碎片不保存状态,旋转/屏幕锁定/返回时崩溃

Android碎片不保存状态,旋转/屏幕锁定/返回时崩溃,android,xml,tabs,views,Android,Xml,Tabs,Views,每当我锁定屏幕、返回、旋转屏幕或点击主屏幕时,我的应用程序都会崩溃。这个应用程序实现了一个带有3个选项卡的片段UI。在我的清单中,我有android:configChanges=“orientation”,这是有效的,直到我改变了一些东西(我不记得它是什么)。现在,即使在我的清单中,我的应用程序也无法处理旋转变化。我正在尝试实现onSaveInstanceState、onRestoreInstanceState、onPause和onResume,但它继续崩溃。下面是一些代码: protected

每当我锁定屏幕、返回、旋转屏幕或点击主屏幕时,我的应用程序都会崩溃。这个应用程序实现了一个带有3个选项卡的片段UI。在我的清单中,我有android:configChanges=“orientation”,这是有效的,直到我改变了一些东西(我不记得它是什么)。现在,即使在我的清单中,我的应用程序也无法处理旋转变化。我正在尝试实现onSaveInstanceState、onRestoreInstanceState、onPause和onResume,但它继续崩溃。下面是一些代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // Inflate the layout
    setContentView(R.layout.main);

    // Initialize the TabHost
    this.initializeTabHost(savedInstanceState);
    if (savedInstanceState != null) {
         // set the tab as per the saved state
        mTabHost.setCurrentTabByTag(savedInstanceState.getString("tab"));
    }
    // Initialize ViewPager
    this.initializeViewPager();

}   

@Override
protected void onPause() {
    super.onPause();       
    }

 @Override
protected void onResume() {
super.onResume();         
}

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putString("tab",
            mTabHost.getCurrentTabTag()); // save the tab selected

}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    String myString = savedInstanceState.getString("tab");

}
应用程序启动和崩溃日志

super.onSaveInstanceState(outState);
outState.putString("tab",
        mTabHost.getCurrentTabTag()); // save the tab selected
应该是

outState.putString("tab",
        mTabHost.getCurrentTabTag()); // save the tab selected
super.onSaveInstanceState(超出状态)


在调用onSaveInstanceState之前,需要将“tab”添加到outState,以避免在OnCreate中加载时出现异常。换句话说,您的“选项卡”实际上从未被保存,因为您是在将“选项卡”添加到状态之前保存状态。

您收到了什么错误消息?请使用类似aLogCat的日志检查应用程序进行检查。这是日志猫,即使我更改了它,我仍然会得到相同的异常。我的代码以前是这样的,我不知道为什么要修改它。也许只是为了实验。但是,我仍然对//字段描述符#12 I public static final int POP_BACK_STACK_INCLUSIVE=1有同样的问题;我不知道如何才能找到错误,但当应用程序崩溃时,在eclipse中它会打开“FragmentManager.class”,然后说“找不到源代码”。这有用吗?:我该怎么做?我为片段所遵循的教程从未提到过这一点。