2014-11-02 25 views
0

我有一個主活性的應用,並且該活動有5 actionTabs,每個actionTab包含fragment,所以我有5 fragments爲好。第一個fragment只顯示單詞「你好」。引起的onSaveInstanceState在App崩潰

在第二個fragment中,它僅顯示一些textviews來指示調用活動生命週期的哪個回調。

第三fragment在其佈局,它包含一個與tablelayout 3排,每排具有imagetextviewedittext。當訪問此tab中包含的此fragment並且當我旋轉設備時,該應用程序不會崩潰。

第四和第五tab分別具有3 LinearLayout和三個relative layout

該應用只有當我訪問所述第四或第五tab並旋轉,其包含以下的設備崩潰。第四個fragment的主要linearlayout垂直取向,並且三個嵌套的水平取向,並且它們中的每一個都包含imageview,textviewedittext

第五個fragemnt與第四個幾乎相同,但代替linearlayouts,它有relativlayout

要注意

第二fragment具有方法onSavedInstance,並且當應用程序訪問所述第四或第五fragment時,所述logcat抱怨的onSavedInstance墜毀併產生以下發布的消息。

我想知道爲什麼應用程序崩潰時,我訪問第四fragment或第五和旋轉設備?

logcat的

11-02 20:48:29.699: E/AndroidRuntime(22282): FATAL EXCEPTION: main 

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):at android.support.v4.app.Fragment.performSaveInstanceState(Fragment.java:1647) 11-02 20:48:29.6 99:E/AndroidRuntime(22282):在android.support.v4.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManager.java:1610)

onSavedInstance()methos

@Override 
public void onSaveInstanceState(Bundle outState) { 
    // TODO Auto-generated method stub 
    super.onSaveInstanceState(outState); 

    outState.putString("TEXT", tv_00.getText().toString()); 
} 
+0

看起來'tv00'是'null'。 – CommonsWare 2014-11-02 19:52:35

+0

但爲什麼它是空的,當我在第四或第五個片段,而不是空的,否則? – LetsamrIt 2014-11-02 19:53:38

+0

你是這個星球上唯一能夠回答這個問題的人,因爲沒有人知道你正在初始化「tv00」。 – CommonsWare 2014-11-02 19:54:43

回答

0

你的片段可以是創建,但尚未有onCreateView()調用。在這種情況下,您將不會在onSaveInstanceState()中擁有此小部件。

您可能會考慮完全刪除此onSaveInstanceState(),使用android:freezesText來安排確保此文本視圖在整個配置更改中保留其文本。

+0

我試過你提供的解決方案,但仍然應用程序崩潰。我真的不知道爲什麼只有第4和第5個碎片導致崩潰 – LetsamrIt 2014-11-02 20:25:06

+0

系統不保證如果用戶明確指定一個「id」到小部件,小部件的狀態會持續嗎?如果附加了「id」,那麼freezesText仍然是必需的? – 2014-11-02 20:25:31

+0

@LetsAmrIt:「我試過你提供的解決方案,但仍然是應用程序崩潰」 - 如果你沒有'onSaveInstanceState()',它肯定不會在'onSaveInstanceState()'中崩潰。 – CommonsWare 2014-11-02 20:30:40