我有两个Fragment:F1 和 F2。
F1 包含:
- 一个 EditText,用户可以填写 - 一个“下一步”按钮,用于进入 F2
当用户按下“下一步”时,显示 F2 并将 F1 添加到后退栈。因此,当用户在 F2 上按下返回键时,它会返回到 F1。
当用户返回到 F1 时,我希望重置 EditText 中的值。由于我只想在视图被重新创建时重新初始化该值,因此我在 onCreateView 方法中进行了重置,而不是 onResume 方法中。
我的问题是,当用户按下返回键时,EditText 会自动填充为先前保存的状态。在 onViewStateRestored 方法中,值会从 saveInstanceState bundle 自动复原。
所以我的问题是:覆盖 onViewStateRestored 方法并向 super 发送 null bundle 是否是个好主意(如下所示),这样可以解决我的问题?
F1 包含:
- 一个 EditText,用户可以填写 - 一个“下一步”按钮,用于进入 F2
当用户按下“下一步”时,显示 F2 并将 F1 添加到后退栈。因此,当用户在 F2 上按下返回键时,它会返回到 F1。
当用户返回到 F1 时,我希望重置 EditText 中的值。由于我只想在视图被重新创建时重新初始化该值,因此我在 onCreateView 方法中进行了重置,而不是 onResume 方法中。
我的问题是,当用户按下返回键时,EditText 会自动填充为先前保存的状态。在 onViewStateRestored 方法中,值会从 saveInstanceState bundle 自动复原。
所以我的问题是:覆盖 onViewStateRestored 方法并向 super 发送 null bundle 是否是个好主意(如下所示),这样可以解决我的问题?
@Override
public void onViewStateRestored(@Nullable Bundle savedInstanceState) {
super.onViewStateRestored(null);
}
onViewCreated
中初始化UI,这意味着只有当视图正确创建时才能进行。所以,是的,我只想覆盖onViewStateRestored
以跳过它。我不想在这个方法中写更多的内容,就像上面的示例一样。 - Eselfar