Each of these areas can easily be encapsulated in a Java class and reused elsewhere in your application. In Chapter 3, Taking Actions, you wrote the DatePickerWrapper class, which can turn any TextView widget into a date selection widget. However, DatePickerWrapper doesn't create the TextView label or change the styling of the widgets to look like TextInputLayout. This means that you need to copy that styling into each layout where you want a date-picker, which can quickly lead to inconsistencies in your user interface. While it's good to have the events and state decoupled from the display logic, it would also be nice to have them grouped together in a single structure that can be reused without every layout having to specify the date picker widgets by hand, and then bind them to the DatePickerWrapper in its code.
While it's not obvious...