在每次试验中将字符串存储为不同的变量

时间:2014-05-30 22:12:54

标签: java android

我有一个非常好奇的请求,因为大多数人从未处理过这个问题。

每次我的应用运行时,我都会得到一个值,比如ScoreActivity.score(其中ScoreActivity是值出现的活动,score是实际值。每当我达到此特定活动时,请说ResultActivity,我需要将ScoreActivity.score存储为变量。

我已经完成了这个
int var1 = ScoreActivity.score

现在,这是问题所在。我希望每次用户执行此游戏时ScoreActivity.score都存储为不同的变量。所以说用户通过游戏,在score获得ScoreActivity,然后转到ResultActivity页面。我希望将此ScoreActivity.score存储为

int var1 = ScoreActivity.score

但是,下次用户完成游戏并获得分数时,我希望将ScoreActivity.score存储为

int var2 = ScoreActivity.score

此外,我希望var1中的值保留为第一个ScoreActivity.score。有谁知道我会怎么做呢?

2 个答案:

答案 0 :(得分:0)

好的,在简单的Java中(在您的应用中没有任何与Android存储相关的内容,我真的可以说很多,因为我从未尝试过这么做。),我看到了几个方法这样做。

  • 首先,如果你知道你将获得多少分数,你可以使用一个简单的数组。每次要插入新值时,您只需要检查数组填充的数量。
  • 另一种解决方案是查看Java Collection接口以及实现它的所有主要类。在这种情况下,您可以充分利用这些,特别是如果您需要稍后订购分数。 Javadoc of Collections
  • 否则,您可以使用String并将元素与字符分开,并且每次都添加一个分数。例如: String scores = score1 + "|" + score2 + "|" + ScoreActivity.score; 您只需要使用正则表达式解析文本以获取正确的信息。当然,订购内部信息并不是最好的。

其他人可能会提供更好的建议,将其存储在应用程序中,但这基本上就是我用Java做的方式。我会亲自前往第二个,收藏。

希望有所帮助!

编辑:正如有人所说,您可以使用数据库存储数据,也可以将其放在文件中。这是第四个解决方案,您可以将数据(加密与否,由您自己决定)放入文件中,稍后再检索。

答案 1 :(得分:0)

如果您担心应用关闭并重新启动,并以某种方式恢复特定活动的分数,您可能希望使用一些持久存储。

有点不清楚您的参数,但假设用户通过ScoreActivity的每个会话生成一个唯一的分数,您想要绑定到特定的活动,您可以将值存储在SharePreferences中并在以后检索它您使用特定标识符启动活动。

参考此处:http://developer.android.com/reference/android/content/SharedPreferences.html

所以你基本上都要存储像{" scoreSession1",10}这样的KV对。