从holocolorpicker中选择一种颜色,然后使用共享首选项保存

时间:2015-01-14 15:18:26

标签: android

我正试图保存从holocolorpicker中挑选的颜色并将其用于另一项活动

在设置活动中的onCreate方法之前我把这行

private String SettingsTAG0 = "backcolorValue";
private SharedPreferences backcolorprefs;
private static int backcolorValue = 0;

在设置活动中的onCreate方法之后我把这行

public void onColorChanged(int color) {
    ColorPicker picker0 = (ColorPicker) findViewById(R.id.backpicker);
    backcolorValue = picker0.getColor();
    Editor editor0 = backcolorprefs.edit();
    editor0.clear();
    editor0.putInt("back_colorcode", backcolorValue);
    editor0.commit();
}

在其他活动的onCreate方法之前我把这行

private String SettingsTAG0 = "backcolorValue";
private SharedPreferences backcolorprefs;
private static int backcolorValue = 0;

在其他活动的onCreate方法中我把这行

backcolorprefs = getSharedPreferences(SettingsTAG0, 0);
    backcolorprefs.getInt("back_colorcode", backcolorValue);
    View view = this.getWindow().getDecorView();
    view.setBackgroundColor(backcolorValue);

我是android和java的超级新手但是我试一试但没有发生任何事情

任何帮助,请

3 个答案:

答案 0 :(得分:1)

这是共享偏好的使用方式:

// put int
SharedPreferences sharedpreferences = getSharedPreferences("MyPreference", Context.MODE_PRIVATE);
Editor editor = sharedpreferences.edit();
editor.putInt("back_colorcode", backcolorValue);
editor.commit();

// get int
SharedPreferences sharedpreferences = getSharedPreferences("MyPreference", Context.MODE_PRIVATE);
int backcolorValue = sharedpreferences.getInt("back_colorcode", 0)

答案 1 :(得分:0)

没有发生任何事情,因为您没有将从首选项读取的值分配给backcolorValue。这一行:

backcolorprefs.getInt("back_colorcode", backcolorValue);

只需读取它并将DOESN&t存储在backcolorValue中。做:

backcolorValue = backcolorprefs.getInt("back_colorcode", backcolorValue);

此外,在 onColorChanged 中,我没有看到您正在初始化backcolorprefs,所以请确保您这样做。顺便说一下,对于 getSharedPreferences ,你应该使用常量Context.MODE_PRIVATE,而不是硬编码的值。

答案 2 :(得分:0)

onColorChanged方法参数是从ColorPicker中选择的颜色代码。在SharedPreferences中保存相同内容:

public void onColorChanged(int color) {
    Editor editor0 = backcolorprefs.edit();
    editor0.clear();
    editor0.putInt("back_colorcode", color);
    editor0.commit();
}

在第二个Activity中,从首选项获取颜色代码并传递给setBackgroundColor

int colorCode=backcolorprefs.getInt("back_colorcode", Color.BLACK);
View view = this.getWindow().getDecorView();
view.setBackgroundColor(colorCode);