2013-12-19 41 views
1

我跟随this创建导航抽屉。 在我的片段之一中,我有一个EditText。 我希望EditText上的文本不会改变,如果我旋转屏幕。Android - 片段使用NavigationDrawer和onSavedInstanceState

我试过使用Bundle savedInstanceState但它不起作用。 我认为我应该从我的Manifest中删除android:configChanges行,但我没有这一行。

我试过了this question的正确答案,但它仍然不适用于我。 那我该怎么办?谢谢:)

+0

显示你的代码。 – wtsang02

回答

0

如果你没有android:configChanges行,那么Android会处理屏幕旋转。你的应用将被破坏并重新创建。在应用程序销毁之前,Android调用onSavedInstanceState,您可以在其中保存娱乐数据。当应用程序重新创建时,传递给onCreate的包不为空,并且包含您保存的状态。

尝试

public void onSavedInstanceState(Bundle bundle) { 
    bundle.put("editTextString",et.getText().toString()); 
    super.onSavedInstanceState(bundle); 
} 

public void onCreate(Bundle savedInstanceState) { 
    if(savedInstanceState!=null) { 
     String savedText = savedInstanceState.get("editTextString"); 
     et.setText(savedText); 
    } 
} 
+0

如果我按照你的说法尝试,我会得到一个“方法onSavedInstanceState(Bundle)未定义的类型片段”错误。如果我更改为super.onSaveInstanceState(bundle);它仍然不起作用,我已经尝试过它:( – andrew