我有一个首选项活动,在那里我可以改变的语言和主题,我应用程序。从那里我回到以前的活动通过后的关键,我想重新创建的活动。

我已经成功地做到这一点通过重新初始化版面 onResume 也叫 onRestoreInstanceState 从那里。所有的意见都恢复正常,与框检查,如果需要,edittexts充满了文本,我离开了那里以前。

但我也有一个按钮,这是最初障碍,并成为启用,只有当一个选择按钮检查。它的问题如下:我检查的选择按钮,按钮成为启用。然后我去设置,改变的主题有,并返回到第一个活动。当我到达那里,选择按钮是恢复检查,但按钮是残疾人。

如此看来,启用/停用的状态并不是被保存到捆绑,这似乎违反直觉的。我还没有找到任何代码在来源,没有这,也是。我失去了一些东西,或者我必须要写我自己的代码了吗?

编辑:顺便说一句,国家仅保存的意见,其中有id。和那个按钮有没有一个,我保证:)

有帮助吗?

解决方案

他们这里的关键是要看看什么是真正启按钮,并确保一致在每次访问的应用程序。

从你的声明:

但我也有一个按钮,这是最初障碍,并成为启用,只有当一个选择按钮检查。

似乎你有听众在选择按钮,它使得能够按钮。从这个,我收集的按钮是最初障碍,这意味着你将有更改,每次运行的活动。

你的选择如下:

  • 有选择按钮设置某种全球的偏好,这是检查onResume,使得能够按钮,如果有必要
  • 当选择按钮被选中,改变全球的设置(或许GUI设置),一个在其中的按钮启用。可能永远留下,直到选择按钮被选中。
  • 节省的enabledness在onSaveInstanceState如你所说的

这是很难说这是最合适的,因为你没有提到的上下文的使用情况,但我会避免它发送过束,除非它是一个非常偶尔使用的活动。它很有意义的跟踪选择按钮定通过储存或改变,直至另行通知。

其他提示

最简单的方法是使你的按钮在onResume如果选择按钮检查。

编辑: 可以处理之间的依赖关系的看法,但它需要的活动是一个类的 PreferenceActivity.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top