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();
}
}