我有一个包含一个主要活动的应用,此活动有5个actionTabs
,每个actionTab
包含fragment
,因此我还有5个fragments
。< / p>
第一个fragment
只显示“你好”这个词。
在第二个fragment
中,它只显示一些textviews
以指示正在调用活动生命周期的哪个回调。
第三个fragment
,在其布局中,它包含一个包含3行的tablelayout
,每行包含image
,textview
和edittext
。当访问此fragment
中包含的此tab
时,当我旋转设备时,应用程序不会崩溃。
仅当我访问第四个或第五个tab
并且旋转包含以下内容的设备时,应用程序才会崩溃:
第四个和第五个tab
分别有三个LinearLayout
和三个relative layout
。第四个linearlayout
的主fragment
垂直定向,三个嵌套的linearlayouts
水平定向,每个imageview
包含textview
,edittext
和fragemnt
。
第五个linearlayouts
与第四个relativlayout
几乎相同,但它不是fragment
,而是onSavedInstance
。
注意:
第二个fragment
的方法为logcat
,当应用在访问第四个或第五个onSavedInstance
时崩溃时,fragment
会抱怨11-02 20:48:29.699: E/AndroidRuntime(22282): FATAL EXCEPTION: main
并生成以下发布的消息。
我想知道当我访问第四个@Override
public void onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
super.onSaveInstanceState(outState);
outState.putString("TEXT", tv_00.getText().toString());
}
或第五个并旋转设备时应用程序崩溃的原因?
logcat的:
{{1}}
11-02 20:48:29.699:E / AndroidRuntime(22282):进程:com.example.viewpagerwithactiontabstest00,PID:22282 11-02 20:48:29.699:E / AndroidRuntime(22282):java.lang.NullPointerException 11-02 20:48:29.699:E / AndroidRuntime(22282):at com.example.viewpagerwithactiontabstest00.Aufgabe_2.onSaveInstanceState(Aufgabe_2.java:142) 11-02 20:48:29.699:E / AndroidRuntime(22282):在android.support.v4.app.Fragment.performSaveInstanceState(Fragment.java:1647) 11-02 20:48:29.699:E / AndroidRuntime(22282):在android.support.v4.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManager.java:1610)
onSavedInstance()方法:
{{1}}
答案 0 :(得分:0)
您的片段可能已创建,但尚未调用onCreateView()
。在这种情况下,您不会在onSaveInstanceState()
中使用此小部件。
您可以考虑完全删除此onSaveInstanceState()
,使用android:freezesText
来安排确保此文本视图在配置更改中保留其文本。