拾色器更改布局颜色

时间:2018-08-15 16:20:23

标签: java android-studio

我使用了这个库:https://github.com/kristiyanP/colorpicker以便在我的应用中使用颜色选择器。 我的问题是当我单击“取消”并再次单击时,颜色选择器在对话框中显示了额外的2行
这是我的onOptionItemSelected

代码
@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId())
        {
        case R.id.color:
                openColorPicker();
                break;
        }
    return true;
}

openColorPicker

public void openColorPicker(){
        final ColorPicker colorPicker = new ColorPicker(this);

        color.add("#EF9A9A");
        color.add("#F48FB1");
        color.add("#CE93D8");
        color.add("#B39DDB");
        color.add("#9FA8DA");
        color.add("#90CAF9");
        color.add("#E6EE9C");
        color.add("#FFAB91");
        color.add("#E0E0E0");
        color.add("#ba2d65");

        colorPicker.setColors(color).setColumns(5)
                .setRoundColorButton(true).setOnFastChooseColorListener(new ColorPicker.OnFastChooseColorListener() {
            @Override
            public void setOnFastChooseColorListener(int position, int Color) {
                Colors = color.get(position).toString();
                layout.setBackgroundColor(Color);
                editText1.setBackgroundColor(Color);
                editText2.setBackgroundColor(Color);
            }
            @Override
            public void onCancel() {

            }
        }).show();

    }

1 个答案:

答案 0 :(得分:0)

我相信您在类级别定义了color变量。尝试在openColorPicker()方法中定义它,就像这样:

public void openColorPicker(){
        final ColorPicker colorPicker = new ColorPicker(this);

        ArrayList<String> color = new ArrayList<>();
        color.add("#EF9A9A");
        color.add("#F48FB1");
        color.add("#CE93D8");
        color.add("#B39DDB");
        color.add("#9FA8DA");
        color.add("#90CAF9");
        color.add("#E6EE9C");
        color.add("#FFAB91");
        color.add("#E0E0E0");
        color.add("#ba2d65");
....
}