Android 替换嵌套片段并清除EditText

Android 替换嵌套片段并清除EditText,android,android-activity,android-fragments,android-edittext,android-nested-fragment,Android,Android Activity,Android Fragments,Android Edittext,Android Nested Fragment,我有以下情况。我的活动A包含片段B。在片段B的内部,微调器确定片段C1还是片段C2显示在微调器下方。每个字段都包含用户输入数据的EditText字段。如何在循环时将数据保存在字段中,并在片段替换时或活动完成后将其删除 我目前的做法如下。我保留片段B,在C1和C2中,我有静态变量存储字段的数据。因此,在C1和C2中的onViewCreated中,我恢复了字段的状态(例如,旋转后)。当用户单击活动中的按钮(Save或Cancel)时,我将当前片段(C1或C2)的所有变量设置为null。到目前为止,一

我有以下情况。我的活动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个额外的变量。有人能给我一个建议吗?

我认为问题在于,既然您保留了片段的实例,那么活动也被保留了。看起来你又在恢复活动了

当按下save或cancel时,您可以尝试将retain实例设置为false


祝你好运。

它不起作用了。。。这个主意很好,我没有试过,但结果和以前一样。当我不保留实例和不清除字段时,字段保持原样。当我不保留实例并清除当前片段的字段时,这些字段被清除,但其他片段的字段保持原样。我没有将retainfragmentinstance写入true,默认为false,我有嵌套片段为什么子片段中的edittext不清晰?