在android中保存Activity状态?

时间:2015-05-16 14:48:51

标签: android android-activity

大家好我在我的应用中ColorPicker。当我将ColorPicker选择的颜色设置为Activity背景时,它可以正常工作。但是当我重新启动应用程序时,颜色会变为默认值!如何保存Activity的状态?可能吗?在此先感谢!!!

2 个答案:

答案 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;
    }