存储时间基准高分

时间:2014-02-19 22:11:07

标签: android sqlite sharedpreferences

我正在学习一些Android应用程序构建的过程。

我想在尝试在游戏中使用它之前创建一个高分系统的例子。

让我们说我有一个运行秒的计时器和一个停止按钮。如果我按下停止按钮,计时器将停止,并且它所来的号码将保存(本地)到高分列表。以前5名为例。

我如何保存这个高分?

我已经阅读了一些关于SQLite和共享偏好的内容,但我不知道该使用什么。也许还有更多的选择?我不是在寻找任何在线高分榜。

如果您知道一些好的指南/教程,请将它们链接到我。

  • 感谢。

2 个答案:

答案 0 :(得分:1)

我使用SharedPreferences作为那种东西,虽然我认为它有点过于复杂。一旦你将它添加到你的清单中并弄清楚如何使用它,它就相当简单了。看起来之前已经涵盖了SharedPreferences的使用:How to use SharedPreferences in Android to store, fetch and edit values。当然,您也可以保存到文件中,这可能更容易,但如果您愿意,可能更容易破解。我对SQLight的评论不太了解。

答案 1 :(得分:1)

是共享偏好适合此。这是一个开始的例子 - 但更好的使用列表:

private static final String[] SCORES_KEYS = { "1", "2", "3", "4", "5" };
private static final int SCORES = 5;
//...
{
    SharedPreferences sp = getDefaultSharedPreferences(); // in an activity,
    // service or other context. DO NOT USE NAMED preferences
    final long timer = getYourTimerScore();
    int position = SCORES;
    long[] lowerScores = new long[SCORES + 1];
    for (int i = SCORES; i > 0;) {
        long j = sp.getLong(SCORES_KEYS[--i], 0);
        if (j < timer) {
            --position;
            lowerScores[i + 1] = j;
        } else break;
    }
    if (position < SCORES) {
        lowerScores[position] = timer;
        Editor ed = sp.edit();
        for (int i = position; i < SCORES; ++i) {
            ed.putLong(SCORES_KEYS[i], lowerScores[i]);
        }
        ed.commit();
    }
}