Styles are cool.
They allow you to define a set of attributes in one place and then apply them to as many widgets as you want.
The downside of styles is that you have to apply them to each and every widget, one at a time.
What if you had a more complex app with lots of buttons in lots of layouts?
BeatBoxButton style to them all could be a huge task.
That is where themes come in. Themes take styles a step further: They allow you to define a set of attributes in one place, like a style – but then those attributes are automatically applied throughout your app. Theme attributes can store a reference to concrete resources, such as colors, and they can also store a reference to styles. In a theme, you can say, for example, ...