Как установить атрибут стиля программно в Android?

Я должен установить стиль для TextView который создается программно.

как реализовать style="@style/test" программно?

Я посмотрел на Android разработчик документацию уже, но он не ответил на мой вопрос. Есть идеи?

3 ответов


динамическое изменение стиля в настоящее время не поддерживается. Необходимо задать стиль перед представлением create (в формате xml).


setTypeface(Typeface.DEFAULT_BOLD, Typeface.BOLD_ITALIC);

это работает для меня


вы можете передать стиль конструктору view. Это можно сделать двумя способами:

  1. использовать ContextThemeWrapper и настроить свой стиль в качестве темы для него:

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

и важное примечание здесь-правильно установить стиль с ContextThemeWrapper мы должны использовать конструктор с тремя аргументами и установить defStyleAttr параметр равен 0. В противном случае к представлению будет применен стиль кнопки по умолчанию.

  1. начиная с API 21 мы можем использовать конструктор с 4 параметрами:

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

здесь defStyleRes ваш стиль ID

С тем же замечанием - defStyleAttr должен быть 0