1

Stats という名前のクラスと Main Activity があります。Stats クラスには、getter メソッドと setter メソッドを使用して、生命、飢餓、睡眠、レベルなどの値があります。

アプリを閉じた後に統計を保存し、アプリの起動時に統計を読み込むにはどうすればよいですか? (statsクラスはアクティビティなし) SharedPreferenceでやってみましたがだめでした。他のもので試してみるべきですか?

解決策: 静的メソッドを持つクラスを取得しました。ゲッターとセッターを入れたかったので静的です。なくてもいいのですが、複雑すぎます。次に、アプリケーションのコンテキストと値をセッターに渡します。そして、ゲッターのコンテキスト。

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