【发布时间】:2014-08-13 04:44:44
【问题描述】:
我已经阅读了有关此问题的所有其他问题,但似乎没有人回答我的问题。我知道如何使用 onSaveInstanceState 保存变量,但是在阅读文档时,我遇到了这个:
然而,即使你什么都不做也没有实现onSaveInstanceState(),一些Activity的状态会被Activity类默认的onSaveInstanceState()实现恢复。具体来说,默认实现为布局中的每个视图调用相应的 onSaveInstanceState() 方法,这允许每个视图提供有关其自身的信息,这些信息应该被保存。几乎 Android 框架中的每个小部件都适当地实现了此方法,以便在重新创建活动时自动保存和恢复对 UI 的任何可见更改。例如,EditText 小部件保存用户输入的任何文本,而 CheckBox 小部件保存它是否被选中。您需要做的唯一工作是为每个要保存其状态的小部件提供唯一 ID(带有 android:id 属性)。如果小部件没有 ID,则系统无法保存其状态。
我查看了我的代码。我的所有 TextView 都有一个唯一 ID,并且在保存任何其他变量之前,我在方法中调用了 super.onSavedInstanceState。但是,当我改变方向时,我所有的 TextViews 都会变成空白。这有什么原因吗?
【问题讨论】:
-
你看过这个 SO 答案了吗? stackoverflow.com/questions/5179686/…
标签: android