我有以下情况。我的活动A包含片段B.在B内部,微调器确定片段C1或片段C2是否显示在微调器下方。其中每个都包含用户输入数据的EditText
个字段。如何在旋转字段中保留数据并在片段替换时或活动结束后将其删除?
我目前的做法如下。我保留片段B并且在C1和C2内部我有静态变量存储字段的数据。因此,在C1和C2的onViewCreated
中,我恢复了字段的状态(例如,在旋转之后)。当用户点击活动中的按钮(Save
或Cancel
)时,我将当前片段(C1或C2)的所有变量设置为null
。到现在为止还挺好。
现在的问题是当我打开A时,我看到C1,然后切换到C2,然后返回上一个活动。我再次打开活动A,默认情况下C1打开。但我只清理了C2,因为这是在关闭活动之前显示的片段。所以,我的问题是虽然我已经替换了片段C2,但它的变量没有设置为null
。如何/在哪里这样做?因此变量保持旋转但不替换片段。当用户点击Up
或硬件后退按钮时,我该怎么办?如果田地也可以清理的话会很棒。
我认为,应该有一些标准的方法来做这一切,没有100个额外的变量。有人可以给我一个建议吗?
答案 0 :(得分:0)
我认为问题是因为你保留了片段的实例,所以也保留了活动。并且看起来你正在恢复活动。
保存或取消按下时,您可以尝试设置保留实例的false。
祝你好运。