Android - 使用导航抽屉和一个SavedInstanceState的片段

时间:2013-12-19 16:20:16

标签: android android-fragments bundle navigation-drawer

我正在关注this来创建导航抽屉。 在我的一个片段中,我有一个EditText。 我希望如果我旋转屏幕,EditText上的文字不会改变。

我尝试使用Bundle savedInstanceState,但它不起作用。 我知道我应该从我的清单中删除行android:configChanges,但我没有那条线。

我已经尝试了this question的正确答案,但它仍然不适合我。 所以我该怎么做?谢谢:))

1 个答案:

答案 0 :(得分: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);
    }
}