在 Android 项目中,我试图找出在片段之间导航时状态保存是如何工作的(by
NavHostFragment
)。
假设我有片段 A 和片段 B:
ARG_IS_EDITABLE
(布尔值)true
的情况下创建的,我正在以编程方式更改我提到的那三个视图的值。arguments = null
现在,点击按钮触发导航到片段 B.
当我然后单击返回(popBackStack)时,EditText 中的文本被恢复,但 textView 和 Button 的文本被恢复。
Android 是否仅针对某些类型的小部件选择性地调用
onSaveInstanceState()
?我可以以某种方式强制它也保存例如状态吗?文本视图?
我基本上是在尝试避免每次从片段 B 返回时都设置值。
PS:对于更多上下文,真实示例是您有表单片段 (A),当您单击某个按钮时,您将导航到包含可选列表 (B) 的片段。您从列表中选择一个选项,设置片段结果并将返回堆栈弹出回 A.
TextView
或 Button
中的文本通常是静态的,直接从字符串资源中提供。动态更改其中任何一个上的文本的情况更为罕见。
另一方面,
EditView
中的文本是由用户输入的,所以它的值会在运行时改变。
我想Android开发人员选择在
onSaveInstanceState()
上自动调用EditView
,而不是TextView
或Button
。