0

我在片段中有加载器,它在后台加载数据。加载数据后,我用该信息填充编辑文本。问题是,如果用户在 edittexts 中更改某些内容并旋转屏幕,则会再次调用 onLoadFinished 并将 edittexts 替换为加载的信息。如果数据已经加载,我通过添加帮助变量来解决这个问题。但是当我用其他片段替换这个片段时,来回旋转屏幕并按下返回按钮,edittexts 是空的。片段设置为保留实例为真。当片段在后台堆栈时,看起来视图丢失了它的状态。有谁熟悉这个?

4

1 回答 1

0

您不应该使用保留状态。但是这样做的正确方法是使用 Bundle 保存保存并在重新创建活动时恢复它(onCreate Bundle 不是新的)。

请查看我发送给您的链接,其中包含一个非常具体的示例。

来自 android 开发指南:

要正确处理重启,重要的是您的 Activity 通过正常的 Activity 生命周期恢复其先前的状态,在该生命周期中,Android 在销毁您的 Activity 之前调用 onSaveInstanceState() 以便您可以保存有关应用程序状态的数据。然后,您可以在 onCreate() 或 onRestoreInstanceState() 期间恢复状态。

Android 旋转变化

于 2013-05-20T08:46:59.503 回答