【问题标题】:Replacing nested fragments and clearing EditText替换嵌套片段并清除 EditText
【发布时间】:2014-07-10 11:59:10
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    我认为问题在于,由于您保留了片段的实例,因此活动也被保留了。看来您又要恢复活动了。

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

    祝你好运。

    【讨论】:

    • 不行……这个主意很棒,我没试过,但是结果和以前一样。当我不保留实例并且不清除字段时,字段保持原样。当我不保留实例并清除当前片段的字段时,这些字段将被清除,但其他片段的字段保持原样。
    • 我没有写retainfragmentinstance为true,默认为false,我有嵌套片段为什么子片段中的edittext不清楚?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-18
    • 2017-11-18
    • 1970-01-01
    • 1970-01-01
    • 2013-05-13
    • 1970-01-01
    相关资源
    最近更新 更多