我以编程方式创建一个 RelativeLayout,其中包含一些其他 View ,并将其添加到以 XML 定义的父级。但是在重新创建 Activity 后,以编程方式创建的所有 View (包括布局)都会消失。我需要一个 SharedPreferences 对象来保存值然后重新创建布局,还是有更简单的方法来保存它?
附言所有新创建的 View 都会分配一个 id
最佳答案
Do I need a SharedPreferences object to save the values and then re-create the layout
您说您正在 onResume()
中创建这些小部件。 onResume()
中的代码需要知道需要创建哪些小部件。如果这纯粹是 transient 信息,并且您担心由于屏幕旋转或其他配置更改而导致 Activity 被销毁和重新创建,请在 Activity 或 Fragment 上使用 onSaveInstanceState()
来传递有关这些小部件的数据,从 Activity 的旧实例到新实例。另一方面,如果您担心几个月后能否重新创建这些 View ,则需要持久存储此信息:SharedPreferences
、数据库、一些其他文件结构、“云"等
关于android 保存以编程方式创建的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14033619/