我将动态创建的EditTexts添加到布局(onClick按钮方法)。当我旋转屏幕时,添加的edittexts消失。如何将它们添加到bundle中以将它们放入onSavedInstanceState方法中?或者,还有另一种方法吗?我知道我可以保存文本,但有一种方法可以在旋转时保持屏幕布局吗?如果用户按下按钮并添加了五个EditTexts(有或没有输入任何内容),我需要在旋转屏幕时保存此布局(我基本上需要对我的应用进行虚拟校对:))。
提前致谢!
答案 0 :(得分:10)
您无法向捆绑包添加视图,因为它们不是可分区/可序列化的。您可以并且应该保存到捆绑包中的唯一内容是活动的当前状态。
您可以维护列表数据结构或计数器变量,以跟踪动态创建的视图。还保存EditTexts的字符串值。在onCreate中,您应该解释该信息,以便重新创建视图及其状态。
答案 1 :(得分:1)
您无法保存视图。 bundle只是一对名字值。当然,您可以保存文本,然后再次渲染它。只是你说的方式。
onsaveInsatnceState(bundle save)将文本保存为save.putString('text1','bla bla')当然你需要一个循环来保存所有的edittext。
然后在oncreated(捆绑保存)
你可以通过save.getString('text1')
获得你添加的内容答案 2 :(得分:0)
视图本身并不代表您需要保存的信息。相反,你应该保存它们的坐标,宽度,高度,值等。
答案 3 :(得分:0)
您可以将观看数据保存到班级或arraylist中。 当你的片段活动重启时,你会在oncreate函数中从saveinstance状态获取数据。
使用此函数setRetainInstance(true)。使用thing函数后,你的片段活动不会破坏。