试图使用SharedPreferences从AmbilWarnaDialog保存颜色,但没有得到颜色

时间:2019-02-12 16:24:26

标签: java android sharedpreferences

我有一个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的数字

1 个答案:

答案 0 :(得分:0)

我发现问题出在哪里。 我有两次声明defaultColor,它采用了未修改的颜色。 我只是删除了其中一个而已,就可以了。