Во время выполнения вы знаете, какой стиль вы хотите, чтобы ваша кнопка имела. Итак, заранее в xml в папке макета вы можете иметь все готовые кнопки с нужными стилями. Итак, в папке макета у вас может быть файл с именем button_style_1.xml. Содержимое этого файла может выглядеть так:
<?xml version="1.0" encoding="utf-8"?>
<Button
android:id="@+id/styleOneButton"
style="@style/FirstStyle" />
Если вы работаете с фрагментами, то в onCreateView вы раздуваете эту кнопку, например:
Button firstStyleBtn = (Button) inflater.inflate(R.layout.button_style_1, container, false);
где контейнер - это контейнер ViewGroup, связанный с методом onCreateView, который вы переопределяете при создании фрагмента.
Нужны еще две такие кнопки? Вы создаете их так:
Button secondFirstStyleBtn = (Button) inflater.inflate(R.layout.button_style_1, container, false);
Button thirdFirstStyleBtn = (Button) inflater.inflate(R.layout.button_style_1, container, false);
Вы можете настроить эти кнопки:
secondFirstStyleBtn.setText("My Second");
thirdFirstStyleBtn.setText("My Third");
Затем вы добавляете свои настраиваемые стилизованные кнопки в контейнер макета, который вы также раздули в методе onCreateView:
_stylizedButtonsContainer = (LinearLayout) rootView.findViewById(R.id.stylizedButtonsContainer);
_stylizedButtonsContainer.addView(firstStyleBtn);
_stylizedButtonsContainer.addView(secondFirstStyleBtn);
_stylizedButtonsContainer.addView(thirdFirstStyleBtn);
Вот так можно динамически работать со стилизованными кнопками.