在尝试CheckBox在屏幕旋转后恢复es 列表的状态时,我遇到了一些非常意外(并且令人难以置信的令人沮丧)的功能.我想我首先会尝试在没有代码的情况下给出文本解释,以防有人能够在没有所有血腥细节的情况下确定解决方案.如果有人需要更多细节,我可以发布代码.
我有一个View包含CheckBoxes 的复杂s 的滚动列表.在屏幕旋转后,我没有成功恢复这些复选框的状态.我已经实现onSaveInstanceState并已成功将选定的复选框列表传输到该onCreate方法.这是通过将long[]数据库ID 传递给Bundle.
在onCreate()我检查Bundleid的数组.如果数组在那里,我用它来确定在构建列表时要检查的复选框.我已经创建了许多测试方法,并确认已根据id数组正确设置了复选框.作为最后一项检查,我正在检查最后的所有复选框的状态onCreate(.一切看起来都不错......除非我旋转屏幕.
当我旋转屏幕时,会发生以下两种情况之一:1)如果选中任意数量的复选框(最后一个除外),则旋转后所有复选框都将关闭.2)如果最后一个复选框旋转前检查,然后所有复选框选中旋转之后.
就像我说的那样,我在我的最后检查盒子的状态onCreate().问题是,根据我在旋转之前选择的内容,最后框的状态onCreate是正确的.但是,屏幕上框的状态并不反映这一点.
另外,我已经实现了每个复选框,setOnCheckChangedListener()并且我确认在我的onCreate方法返回后我的复选框'状态'正在被更改.
任何人都知道发生了什么?在我的onCreate方法返回后,为什么我的复选框的状态会发生变化?
在此先感谢您的帮助.我一直试图将这种情况脱气几天.在我发现我的复选框显然在我自己的代码之外的某个地方发生变化后,我认为是时候四处询问了.