我有一个颜色选择器,我在sharedPreferences中使用它。使用默认的颜色选择器,我成功地实现了我想要的,但我注意到没有黑色或白色。http://www.yougli.net/android/a-photoshop-like-color-picker-for-your-android-application/我想使用这段代码,但在最后一行,他展示了一个例子,我可以看到它被附加到一个首选屏幕上。相反,我使用自己的活动和按钮,在这些按钮中,我可以使用共享的首选项保存数据/值(所以这不是首选项活动,只是一个活动)。例如,点击布局结果:
OptVertexColor = (LinearLayout) findViewById(R.id.OptVC);
OptVertexColor.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LoadChartVertexColor();
ColorPickerDialog dlg = new ColorPickerDialog(settings.this,
new ColorPickerDialog.OnColorChangedListener() {
public void colorChanged(int color) {
SaveChartVertexColor("vertexcolor", color);
}
}, loadedVertexColor);
dlg.setTitle("Select new color");
dlg.show();
}
});
将显示默认的颜色选择器对话框,我可以保存颜色。现在,我如何在没有偏好屏幕的情况下使用它并获得相同的结果?我试图将上面的代码复制到这个代码中,但我不知道如何处理它。
public class MySettings extends PreferenceActivity implements OnPreferenceClickListener, ColorPickerDialog.OnColorChangedListener {
public boolean onPreferenceClick(Preference pref)
{
new ColorPickerDialog(this, this, DROIDS_COLOR_KEY, mPrefs.getInt(DROIDS_COLOR_KEY, DROIDS_COLOR_DEFAULT), DROIDS_COLOR_DEFAULT).show();
return true;
}
public void colorChanged(String key, int color)
{
((PreferenceScreen)this.findPreference(SETTINGS_KEY)).getEditor().putInt(key, color).commit();
}
}
提前谢谢!
在您自己的"活动"中,添加
implements ColorPickerDialog.OnColorChangedListener
到类声明。
添加到您的课堂主体:
public void colorChanged(String key, int color) {
//create your SharedPreferences and your SharedPreferences.Editor here
editor.putInt(key, color);
editor.commit();
}
并在一个按钮点击监听器添加:
new ColorPickerDialog(this, this, DROIDS_COLOR_KEY, mPrefs.getInt(DROIDS_COLOR_KEY, DROIDS_COLOR_DEFAULT), DROIDS_COLOR_DEFAULT).show();
这应该行得通。如果我没有回答你的问题,请告诉我,我会看看我能做些什么。