Это код сложного вида, который я написал. Он использует android.support.v7.widget.CardView в качестве родительского класса:Установить стиль программно не работает
public class ItemListItem extends CardView {
TextView tvName;
ImageView ivIcon;
public ItemListItem(Context context) {
super(context, null, R.style.GreenCardView);
LayoutInflater.from(context).inflate(R.layout.item_list_item, this, true);
tvName = (TextView) findViewById(R.id.tvName);
ivIcon = (ImageView) findViewById(R.id.ivIcon);
}
public void setItem(Item item)
{
tvName.setText(item.getName());
}
}
Хотя я добавляю свой стиль (R.style.GreenCardView) до супер вызова конструктора в строке 7, инициализирует каждый экземпляр этого класса со стандартным белым стилем. Почему это так?
редактировать: стиль
<style name="GreenCardView" parent="CardView.Dark">
<item name="contentPadding">@dimen/default_margin</item>
<item name="cardBackgroundColor">@color/guiColor</item>
<item name="cardElevation">@dimen/cardElevation</item>
<item name="cardCornerRadius">@dimen/cardCornerRadius</item>
<item name="android:foreground">?android:attr/selectableItemBackground</item>
</style>
вы должны добавить статический класс в ItemListItem для того, чтобы установить что-нибудь из Drawable. но у меня нет источника прямо сейчас – Nepster