我正试图保存从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的超级新手但是我试一试但没有发生任何事情
任何帮助,请
答案 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);