我使用了这个库: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();
}
答案 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");
....
}