我正在尝试使用mColorPicker并使其运行良好,它会改变选择器中的颜色,但我正在尝试获取共享首选项以获取新颜色,以便我可以使用它。 到目前为止,没有运气,它不会改变颜色,只保留默认颜色。 我在一个单独的文件中有首选项,在主要活动中我想从中获取首选项。 以下是我在主要活动中的内容
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
this._blimp.setTopNameColor(prefs.getInt(TOPNAME_COLOR_CHOICE, 0xffffffff));
}
当我使用日志时,我得到一个-1,0xffffffff是默认颜色,但它根本不会改变。 所以我知道我在这里错过了一些东西,在我有这个的设置
@Override
public boolean onPreferenceClick(Preference preference) {
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(LiveWallpaperSettings.this);
final ColorPickerDialog d = new ColorPickerDialog(this, prefs.getInt("top_name_color", 0xffffffff));
d.setAlphaSliderVisible(true);
d.setButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
SharedPreferences.Editor editor = prefs.edit();
editor.putInt("top_name_color", d.getColor());
editor.commit();
}
});
d.setButton2("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
d.show();
return true;
}
我从mColorPicker中的Main.java中获取并将其放入我的livewallpapersettings文件中。在这里,它更改对话框窗口颜色没有问题,但在主活动文件的共享首选项中没有。 如果我可以让它工作并在主要活动的共享首选项中更新,这是一个梦幻般的颜色选择器,所以它实际上改变了我的颜色。 我知道这可能很简单,但希望有人可以帮助我。 提前致谢。 萨姆
答案 0 :(得分:0)
我使用了this ColorPicker,效果很好。
在首选项中有一个按钮,以便在按下时显示对话框。
我用
SharedPreferences sharedPreferences = getSharedPreferences(MY_PREFERENCES, Activity.MODE_PRIVATE);
editor = sharedPreferences.edit();
然后当用户选择颜色时
editor.putInt(TEXT_COLOR, color);
editor.commit();
在您的主要活动中,您将获得颜色
prefs = getSharedPreferences(Preferences.MY_PREFERENCES, Activity.MODE_PRIVATE);
textColor = prefs.getInt(Preferences.TEXT_COLOR, R.color.black);
希望这有帮助。