【发布时间】:2014-07-10 11:59:10
【问题描述】:
我有以下情况。我的活动 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 个额外的变量。有人可以给我一个建议吗?
【问题讨论】:
标签: android android-activity android-fragments android-edittext android-nested-fragment