Я хочу использовать цвет из атрибута темы для textView.setTextColor()
. Я нашел метод:
public static int getColor(int attr, Resources.Theme theme) {
TypedValue value = new TypedValue();
theme.resolveAttribute(attr, value, true);
return value.data;
}
и он не работает для некоторых TextView
, как ожидалось. Например, он работает с R.attr.colorPrimary
(текст становится красным ) и не работает с R.attr.colorPrimarySelector
(мой пользовательский атрибут) (colorPrimarySelector
синий, но текст становится прозрачным)
Но если я использую:
public static int getColor(int attr, Context context) {
TypedValue value = new TypedValue();
context.getTheme().resolveAttribute(attr, value, true);
return ContextCompat.getColor(context, value.resourceId);
}
и работает нормально.
Я не понимаю, почему сначала работают для некоторого View или некоторого attr и не работают для другого, и в чем разница между возвращаемыми значениями.
Контекст правильный.