替换嵌套片段并清除EditText

时间:2014-07-10 11:59:11

标签: android android-activity android-fragments android-edittext android-nested-fragment

我有以下情况。我的活动A包含片段B.在B内部,微调器确定片段C1或片段C2是否显示在微调器下方。其中每个都包含用户输入数据的EditText个字段。如何在旋转字段中保留数据并在片段替换时或活动结束后将其删除?

我目前的做法如下。我保留片段B并且在C1和C2内部我有静态变量存储字段的数据。因此,在C1和C2的onViewCreated中,我恢复了字段的状态(例如,在旋转之后)。当用户点击活动中的按钮(SaveCancel)时,我将当前片段(C1或C2)的所有变量设置为null。到现在为止还挺好。

现在的问题是当我打开A时,我看到C1,然后切换到C2,然后返回上一个活动。我再次打开活动A,默认情况下C1打开。但我只清理了C2,因为这是在关闭活动之前显示的片段。所以,我的问题是虽然我已经替换了片段C2,但它的变量没有设置为null。如何/在哪里这样做?因此变量保持旋转但不替换片段。当用户点击Up或硬件后退按钮时,我该怎么办?如果田地也可以清理的话会很棒。

我认为,应该有一些标准的方法来做这一切,没有100个额外的变量。有人可以给我一个建议吗?

1 个答案:

答案 0 :(得分:0)

我认为问题是因为你保留了片段的实例,所以也保留了活动。并且看起来你正在恢复活动。

保存或取消按下时,您可以尝试设置保留实例的false。

祝你好运。