Android共享首选项mColorPicker问题

时间:2012-02-20 21:33:10

标签: android sharedpreferences color-picker

我正在尝试使用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文件中。在这里,它更改对话框窗口颜色没有问题,但在主活动文件的共享首选项中没有。 如果我可以让它工作并在主要活动的共享首选项中更新,这是一个梦幻般的颜色选择器,所以它实际上改变了我的颜色。 我知道这可能很简单,但希望有人可以帮助我。 提前致谢。 萨姆

1 个答案:

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

希望这有帮助。