应该onSaveInstanceState保存"enabledness"的意见吗?
-
27-09-2019 - |
题
我有一个首选项活动,在那里我可以改变的语言和主题,我应用程序。从那里我回到以前的活动通过后的关键,我想重新创建的活动。
我已经成功地做到这一点通过重新初始化版面 onResume
也叫 onRestoreInstanceState
从那里。所有的意见都恢复正常,与框检查,如果需要,edittexts充满了文本,我离开了那里以前。
但我也有一个按钮,这是最初障碍,并成为启用,只有当一个选择按钮检查。它的问题如下:我检查的选择按钮,按钮成为启用。然后我去设置,改变的主题有,并返回到第一个活动。当我到达那里,选择按钮是恢复检查,但按钮是残疾人。
如此看来,启用/停用的状态并不是被保存到捆绑,这似乎违反直觉的。我还没有找到任何代码在来源,没有这,也是。我失去了一些东西,或者我必须要写我自己的代码了吗?
编辑:顺便说一句,国家仅保存的意见,其中有id。和那个按钮有没有一个,我保证:)
解决方案
他们这里的关键是要看看什么是真正启按钮,并确保一致在每次访问的应用程序。
从你的声明:
但我也有一个按钮,这是最初障碍,并成为启用,只有当一个选择按钮检查。
似乎你有听众在选择按钮,它使得能够按钮。从这个,我收集的按钮是最初障碍,这意味着你将有更改,每次运行的活动。
你的选择如下:
- 有选择按钮设置某种全球的偏好,这是检查onResume,使得能够按钮,如果有必要
- 当选择按钮被选中,改变全球的设置(或许GUI设置),一个在其中的按钮启用。可能永远留下,直到选择按钮被选中。
- 节省的enabledness在onSaveInstanceState如你所说的
这是很难说这是最合适的,因为你没有提到的上下文的使用情况,但我会避免它发送过束,除非它是一个非常偶尔使用的活动。它很有意义的跟踪选择按钮定通过储存或改变,直至另行通知。
其他提示
最简单的方法是使你的按钮在onResume如果选择按钮检查。
编辑: 分 可以处理之间的依赖关系的看法,但它需要的活动是一个类的 PreferenceActivity.
不隶属于 StackOverflow