在过去的一天半里,我一直在寻找有关如何存储字符串/字符串数组等的网站。我似乎无法弄明白。我不确定我是不是很理解如何实现数据存储......或者是什么。但这是我的问题,简单地说,我有两个活动页面(我们分别命名为'A,B')。我想要做的就是从活动B中的文本视图中获取一个字符串,将其存储在一个数组中,然后通过单击活动A中的按钮来访问它。
我知道这很简单,但我出于某种原因遇到了阻塞......我正在尝试使用SharedPreferences但是如何从Activity B获取字符串,将其存储在全局数组中,并让它通过不同的活动(活动A)?
答案 0 :(得分:4)
只需将其存储到共享首选项中(通常在onPause()中):
SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();
editor.putString(GAME_STATE, writer.toString());
editor.commit();
在一个活动中加载另一个活动(通常在onResume()中):
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
String jsonState = preferences.getString(GAME_STATE, null);
没有什么能阻止你使用公共静态变量
答案 1 :(得分:1)
您不能将数组直接存储在共享首选项中,但可以存储一组。
请参阅putStringSet和getStringSet。如果您希望将它们存储在SharedPreferences中,可以将数组中的所有项添加到LinkedHashSet(只要它们是唯一的)。有关如何使用SharedPreferences的一般概念,请参阅Konstantin的答案。
答案 2 :(得分:0)
是的,您可以在全局数组中获取并存储值,但是一旦关闭应用程序,您将丢失所有内容。因此,只要您需要,就可以更好地创建表并从表中存储/获取值。
以下是创建SQLite example的示例。