且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

保存得分较高的Andr​​oid游戏 - 共享preferences

更新时间:2023-02-02 19:26:33

要保存你的分数,你可以做这样的事情:

To save your scores you can do something like this:

// prepare the data: put the String values of the scores of the first 3 users
// in one String array for each level
String[] firstLevelHighscores = new String[] { 
    firstUserLevel1Score, secondUserLevel1Score, thirdUserLevel1Score 
};
String[] secondLevelHighscores = new String[] { 
    firstUserLevel2Score, secondUserLevel2Score, thirdUserLevel2Score 
};
String[] thirdLevelHighscores = new String[] { 
    firstUserLevel3Score, secondUserLevel3Score, thirdUserLevel3Score 
};

// now save them in SharedPreferences
SharedPreferences sharedPref = getSharedPreferences("LevelScores", 
        Context.MODE_PRIVATE);
Editor editor = sharedPref.edit();
editor.putStringSet("level1", firstLevelHighscores);
editor.putStringSet("level2", secondLevelHighscores);
editor.putStringSet("level3", thirdLevelHighscores);

请注意,你可以把更多的用户的恩怨到字符串数组。如果您需要保存的分数多层次,您只需创建多个阵列。

Note that you can put even more user's scores into the String array. And if you need to save scores for more levels, you simply create more arrays.

要从共享preferences检索保存的数据,你这样做是这样的:

To retrieve the saved data from SharedPreferences, you do it like this:

SharedPreferences sharedPref = getSharedPreferences("LevelScores", 
        Context.MODE_PRIVATE);
String[] firstLevelHighscores = sharedPref.getStringSet("level1", null);
String[] secondLevelHighscores = sharedPref.getStringSet("level2", null);
String[] thirdLevelHighscores = sharedPref.getStringSet("level3", null);

我假设你能够 INT 转换为字符串,反之亦然。希望它为你这样的。

I assume you're able to convert int to String and vice versa. Hope it works for you this way.