Saving/loading 具有先前以编程方式添加的按钮的 Android 布局

Saving/loading an Android layout with previously programmatically added buttons

我有一个关于在 main activity 中加载布局的非常简单的问题。我在 activity_main.xml 中定义了一个简单的布局,它使用

在 MainActivity 的 OnCreate() 中加载
setContentView(R.layout.activity_main).

然后在单击按钮时,我添加了另一个正确显示的视图项(按钮)。

但是当应用关闭再打开时,我需要保留上次应用关闭时添加的内容。我该怎么做?

我在这里搜索了一些问题,但大多数都是说使用SharedPreferences保存值或保存状态,但不清楚布局是否也可以保存。

提前致谢。

我认为最好的解决方案是使用 SharedPreferences 保存最新的状态值,因为这是长期保存任何简单数据的好方法。

通过使用 saveInstanceState 保存状态是一个短期解决方案,如果您完全关闭您的应用程序,保存的实例将永远消失。

可能的解决方案:

首先,你不能像你想象的那样保存布局,但是你可以得到布局的parameters和其他特征作为variables,然后你可以使用SharedPreferences保存这些。

其次,当您启动activity时,您应该检查是否有任何保存的布局状态。如果有的话,您可以使用预先保存的参数来添加您的布局 dynamically/programmatically.