我有一个ColorPicker
对话框,已添加到build.gradle
。
对话框为AmbilWarnaDialog
。
我可以更改颜色,但是问题出在退出应用程序并再次打开颜色是colorPrimary
时,它没有从SharedPreferences
中获取颜色。
我可以在SharedPreferences
处保存颜色,但是它不能从那里获取颜色。
下面是我的代码。
MainActivity.class
SharedPreferences sharedpreferences = getSharedPreferences(Change_Color, Context.MODE_PRIVATE);
int backcolorValue = sharedpreferences.getInt("back_color_code", 1);
if (backcolorValue != 1) {
Log.d("TAG", "onCreate: " + "e pera");
changeHeader.setBackgroundColor(backcolorValue);
getWindow().setStatusBarColor(backcolorValue);
} else {
changeHeader.setBackgroundColor(mDefaultColor);
}
public void openColorPicker() {
AmbilWarnaDialog colorPicker = new AmbilWarnaDialog(this, mDefaultColor, new AmbilWarnaDialog.OnAmbilWarnaListener() {
@Override
public void onCancel(AmbilWarnaDialog dialog) {
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public void onOk(AmbilWarnaDialog dialog, int color) {
changeHeader.setBackgroundColor(color);
getWindow().setStatusBarColor(color);
SharedPreferences sharedpreferences = getSharedPreferences(Change_Color, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putInt("back_color_code", color);
editor.apply();
Log.d("TAG", "onOk: " + color);
}
});
colorPicker.show();
}
activity_main.XML
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
style="@style/ActivityMain">
<RelativeLayout
android:id="@+id/relLayoutTitle"
style="@style/RelativeLayoutTitleSearch">
</RelativeLayout>
</RelativeLayout/
styles.xml
<style name="RelativeLayoutTitleSearch">
<item name="android:background">@color/blue_title</item>
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">@dimen/title_height</item>
<item name="android:adjustViewBounds">true</item>
</style>
在color
处的Dialog
返回类似于-112332
的数字
答案 0 :(得分:0)
我发现问题出在哪里。
我有两次声明defaultColor
,它采用了未修改的颜色。
我只是删除了其中一个而已,就可以了。