2010-11-07 60 views
0

与往常一样,在Android中,每当屏幕翻转到纵向/横向模式时,Activity都会从onStroyInstanceState到onDestroy的生命周期运行,然后重新创建。切换屏幕方向时保存并恢复ButtonText

在我的Activity中有一个ButtonText可以被用户改变。它被复位到初始状态,但我必须以某种方式保存最后的状态。我如何实现这一点,我将不得不重写onSaveInstanceState?有人可以举个例子吗?

回答

1

步骤#1:拨getText().toString()Button以获得标题。

步骤#2:致电putString()Bundle传递给您的实施onSaveInstanceState()来存储标题。

第3步:在Bundle传递给你的执行onRestoreInstanceState()电话getString()(或onCreate(),如果Bundlenull,如果你愿意的话),让您的标题后面,然后调用setText()Button放添加字幕回来。

Here is a sample project使用onSaveInstanceState()保存的联系人(这也影响了Button是否被启用)的Uri

+0

这是昭然若揭,谢谢! :-) – cody 2010-11-07 22:23:45

4

我有同样的问题,并期望默认实现将负责恢复按钮的文本。不幸的是,它没有。最后,我分别找到了属性android:freezesText和setFreezesText(boolean)方法。设置为true时,该按钮将自动恢复其文本。

见巴顿的超类的TextView的参考:http://developer.android.com/reference/android/widget/TextView.html#attr_android:freezesText

+1

这个答案的作用,就像向你的按钮添加'“android:freezesText =”true“'一样简单,并且按钮文本保存在方向更改中 – 2014-10-15 07:49:50