Отредактированный ответ
Вы получаете исключение Caused by: java.lang.IllegalArgumentException: Unknown color
означает, что вы не передаете цвет в поддерживаемых форматах методу Color.parseColor
.
Убедитесь, что вы передаете значения в следующем формате
#RRGGBB
#AARRGGBB
Вот правильный пример
Color.parseColor("#FF4081")
Для получения дополнительной информации см. Документацию Color.parseColor
Согласно вашему требованию, вы можете достичь этого уровня API 24 и выше. Если вы используете текущую minSdkVersion 24 , попробуйте ниже
Измените класс вашей модели, чтобы сохранить цвет как Integer
вместо String
.
GradientDrawable gradientDrawable = (GradientDrawable) tag_watchlist.getBackground().mutate();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
int color = gradientDrawable.getColor().getDefaultColor();
Log.d("TAG","Color is :"+color);
current.setTagColor(color); // where current is your model class
}
Чтобы вернуть цвет от модели
int color = current.getTagColor();