我正在创造一个记忆游戏。在用户完成游戏后,他可以开始新的游戏。为了玩新游戏,我决定再次召唤活动。但是,当再次调用活动时,分数会在初始化时返回到0。我想知道是否可以保存以前的分数并防止被覆盖,即使我再次呼叫相同的活动。
Check.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
Answer.setText("You got "+Integer.toString(correct)+" correct answers.");
}
});
newGame.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
Intent i = new Intent(Game.this, Game.class);
i.putExtra("name", name);
startActivity(i);
答案 0 :(得分:0)
是的,使用SharedPreferences
来存储分数。这是存储简单但持久的数据的一种非常好的方法。The Docs有一个很好的例子来说明如何做到这一点。您可以将它们保存在onClick()
或您想要的任何地方。然后,您可以在启动Activity
时检查该首选项是否具有值。如果是这样,那么你就可以用你的旧分数做任何你想做的事。
基本步骤是通过创建SharedPreferences.Editor
实例来存储它们(确保在写入首选项后调用commit()
。然后使用getSharedPreferences
方法检索它们位于您的第一个Activity
。这个链接有一个很好的使用它的例子。
如果您在应用关闭时不需要保持数据持久性,并且根据您使用它做了什么,您也可以将其作为extra
中的Intent
传递给您与name
合作,但SharedPreferences
可能会更好,具体取决于您的需求。