Como recuperar e usar um atributo de estilo do código?
Oct 14 2020
Eu defini um tema no style.xmlarquivo.
<style name="ThemePurple" parent="AppTheme.NoActionBar">
<item name="colorPrimary">@color/colorPurple</item>
<item name="colorPrimaryDark">@color/colorPurpleDark</item>
<item name="colorAccent">@color/colorPurpleAccent</item>
</style>
Quero usar colorPrimaryeste tema para um textViewem a recyclerView. Eu tentei isso:
int[] attrs = {android.R.attr.colorPrimary};
TypedArray typedArray = mContext.obtainStyledAttributes(R.style.ThemePurple, attrs);
holder.titleView.setTextColor(typedArray.getColor(0, Color.BLACK));
typedArray.recycle();
Mas isto não está funcionando..
Respostas
3 snachmsm Oct 14 2020 at 11:44
não android.R.attr.colorPrimary, mas apenasR.attr.colorPrimary
android prefixo significa que você deseja obter um valor embutido, por exemplo android:colorPrimary
você está usando compat lib (provavelmente AndroidX), que fornece atributos mais novos para versões mais antigas do sistema, então esses parâmetros são na verdade "personalizados", sem android:prefixo
2 Yeldar.N Oct 14 2020 at 11:57
Para Kotlin :
val typedValue = TypedValue()
context.theme.resolveAttribute(android.R.attr.colorPrimary, typedValue, true)
holder.titleView.setTextColor(typedValue.data)
Para Java:
TypedValue typedValue = new TypedValue();
context.getTheme().resolveAttribute(android.R.attr.colorPrimary, typedValue, true);
holder.titleView.setTextColor(typedValue.data);
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?