2012-03-10 41 views
3

我的主屏幕上有一个按钮,每次按下该按钮时都会添加一个编辑文本字段(为了获得最佳实践,我将其限制为20)。它基本上是一个小预算应用程序。我希望用户在其中一个字段中填入X美元。然后,当他们准备好时,再次回到应用程序,并创建EditText仍然存在填充值。我知道如何利用SharedPerfrences来保存价值。但是,我不知道如何在用户回来时保存新创建的EditText字段。如何在Android中保存(用户创建的)动态布局?

我实际上可以将扩大,并有一个按钮,每场的EditText相关的日期选择这么快就点击按钮将创建三个对象,不只是一个。但我希望先得到一个工作,并在以后将这个原则应用于其他人。有什么建议么?

回答

1

听起来像一个很好的候选人SQLite数据库。

举例来说,我使用的SQLite数据库来保留和召回该用户已安排我的应用程序中的小部件的坐标和类型。

请注意,您从不希望尝试存储和调用实际的对象本身。在您的数据库中,您需要设计适合您需要存储的信息的自己的表格格式。如果您只需要保留一系列EditText字段的状态,那么这可能与只有一列包含每行中的字符串值的列一样简单。要从该数据库再次构建UI,您需要循环并创建一个新的EditText实例,并从表中设置每个实例的文本。

+0

好的,非常感谢。看起来我是以错误的角度来看待这个问题的。虽然我很想简化这一点,并使用SharedPreferences而不是SQLite,但至少你让我走上了正轨!我很想看看别人会如何尝试这个。 – KickingLettuce 2012-03-10 19:49:35

+0

'SharedPreferences'可能是一种更简单的方法,可以开始并启动并运行。然而,'SharedPreferences'确实用于存储少量的特定键=值数据;它不适合阵列数据。所以,如果你刚一'EditText',那么你可以像'mFieldValue'一个首选项键,但对于许多'EditText's你将不得不使用的按键,例如mFieldValue1,mFieldValue2等,或代替组中的所有'的EditText 's'值转换为一个值字符串。无论哪种方式都很麻烦,就像在一个圆洞中放置一个方形钉子,而这正是SQLite数据库所在的地方。 – Trevor 2012-03-10 20:02:15

+0

根据您的建议在这里做一些研究,我发现SQLite看起来是要走的路!谢谢你的帮助。 – KickingLettuce 2012-03-10 20:30:42

0

您将不得不使用Android Parcelable接口,请参阅this了解如何实现它,请参阅我在StackOverflow上询问的this question,它有一个很好的答案。