1

我有一个名为 Stats 的类和一个 Main Activity。Stats 类具有一些值,例如:生命、饥饿、睡眠、级别等,带有 Getter 和 Setter 方法。

如何在应用程序关闭后保存我的统计信息并在应用程序启动时加载统计信息?(统计类没有活动)我用 SharedPreference 尝试过,但失败了。我应该用别的东西试试吗?

解决方案:我上了一个带有静态方法的课程。静态的,因为我想在其中包含 getter 和 setter。即使没有它也可以,但它太复杂了。然后传递应用程序的上下文和设置器的值。以及吸气剂中的上下文。

package at.android.dertestloerk;

import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceActivity;

public class SettingsLoerg extends PreferenceActivity {

    private static final String KEY_HUNGER = "key_hunger";
    private static final String KEY_SLEEP = "key_sleep";
    private static final String KEY_LIFE = "key_life";
    private static final String KEY_LEVEL = "key_level";

    public static SharedPreferences getPrefs(Context context) {

        return context.getSharedPreferences("PreferenceLoerg", Context.MODE_PRIVATE);

    }


    public static int getHunger(Context context) {
        return getPrefs(context).getInt(KEY_HUNGER, -1);
    }

    public static void setHunger(int hunger, Context context) {
        getPrefs(context).edit().putInt(KEY_HUNGER, hunger).commit();
    }

    public static int getSleep(Context context) {
        return getPrefs(context).getInt(KEY_SLEEP, -1);
    }

    public static void setSleep(int sleep, Context context) {
        getPrefs(context).edit().putInt(KEY_SLEEP, sleep).commit();
    }

    public static int getLife(Context context) {
        return getPrefs(context).getInt(KEY_LIFE, -1);
    }

    public static void setLife(int life, Context context) {
        getPrefs(context).edit().putInt(KEY_LIFE, life).commit();
    }

    public static int getLevel(Context context) {
        return getPrefs(context).getInt(KEY_LEVEL, -1);
    }

    public static void setLevel(int level, Context context) {
        getPrefs(context).edit().putInt(KEY_LEVEL, level).commit();
    }
}

4

0 回答 0