大家好我在我的应用中ColorPicker
。当我将ColorPicker
选择的颜色设置为Activity
背景时,它可以正常工作。但是当我重新启动应用程序时,颜色会变为默认值!如何保存Activity
的状态?可能吗?在此先感谢!!!
答案 0 :(得分:3)
例如,你可以像这样保存颜色(我只是放了一个十六进制颜色参考,但你可以把它改成你想要的任何颜色):
public void setBackgroundColor() {
SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("color", "#FFFFFF");
editor.commit();
}
然后确保每次加载/重新加载时都调用此方法:
public void getBackgroundColor() {
SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE);
if (sharedPreferences.contains("color")) {
String myColor = sharedPreferences.getString("color", null);
mybackground.setBackgroundColor(Color.parseColor(myColor));
}
}
答案 1 :(得分:2)
安迪的回答是正确的。但是,我想我会在保存和加载首选项时加入。这些是字符串的通用保存/加载方法。这就是我在所有活动中使用的内容。它可以为您节省很多麻烦!
public static String PREFS_NAME = "random_pref";
static public boolean setPreference(Context c, String value, String key) {
SharedPreferences settings = c.getSharedPreferences(PREF_NAME, 0);
settings = c.getSharedPreferences(PREF_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString(key, value);
return editor.commit();
}
static public String getPreference(Context c, String key) {
SharedPreferences settings = c.getSharedPreferences(PREF_NAME, 0);
settings = c.getSharedPreferences(PREFS_NAME , 0);
String value = settings.getString(key, "");
return value;
}