像往常一样在android中,每次将屏幕翻转为纵向/横向模式时,Activity都会从onSaveInstanceState到onDestroy运行生命周期,然后重新创建。
在我的Activity中有一个ButtonText,可由用户更改。它重置为初始状态,但我必须以某种方式保存最后一个状态。我怎样才能实现这一点,我是否必须覆盖onSaveInstanceState?有人可以举个例子吗?
答案 0 :(得分:4)
我遇到了同样的问题,并且预计默认实现会处理恢复按钮的文本。不幸的是它没有。最后我分别找到了属性android:freezesText方法setFreezesText(boolean)。设置为true时,按钮将自动恢复其文本。
参见Button的超类TextView的引用:http://developer.android.com/reference/android/widget/TextView.html#attr_android:freezesText
答案 1 :(得分:1)
步骤1:致电getText().toString()
上的Button
以获取标题。
步骤2:致电putString()
上的Bundle
致电onSaveInstanceState()
以执行getString()
以存储标题。
步骤3:如果Bundle
不是{{onRestoreInstanceState()
,请致onCreate()
传递给您Bundle
的实施(或null
} 1}},如果您愿意)重新获取标题,请拨打setText()
上的Button
以重新设置标题。
Here is a sample project使用onSaveInstanceState()
保存联系人Uri
(这也会影响Button
是否已启用)。