how to set the Style Attribute Programmatically in Android?

setTypeface(Typeface.DEFAULT_BOLD, Typeface.BOLD_ITALIC);

It works for me


Dynamic style change is not currently supported. You must set the style before the view is create (in xml).


You can pass the style to view's constructor. This can be done in 2 ways:

  1. Use ContextThemeWrapper and setup your style as a Theme for it:

    ContextThemeWrapper wrappedContext = new ContextThemeWrapper(yourContext, R.style.test);
    TextView testView = new TextView(wrappedContext, null, 0);
    

And important note here - to properly set the style with ContextThemeWrapper we have to use three-argument constructor and set defStyleAttr parameter to 0. Otherwise the default button style will be applied to the view.

  1. Starting from API 21 we can use constructor with 4 parameters:

    View (Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)
    

Where defStyleRes is your style ID

With the same remark - defStyleAttr should be 0

Tags:

Android