如何将视图放入Bundle

时间:2012-06-25 16:52:27

标签: java android bundle

我将动态创建的EditTexts添加到布局(onClick按钮方法)。当我旋转屏幕时,添加的edittexts消失。如何将它们添加到bundle中以将它们放入onSavedInstanceState方法中?或者,还有另一种方法吗?我知道我可以保存文本,但有一种方法可以在旋转时保持屏幕布局吗?如果用户按下按钮并添加了五个EditTexts(有或没有输入任何内容),我需要在旋转屏幕时保存此布局(我基本上需要对我的应用进行虚拟校对:))。

提前致谢!

4 个答案:

答案 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函数后,你的片段活动不会破坏。