Welcome to final part of this review of the Pluralsight course Improving User Interface Design with Android Fragments by Jim Wilson.
Jim has over 30 years of software engineering experience, with the past 15 years heavily focused on creating mobile device and location-based solutions. He has co-founded multiple software-related startups and has served in a consulting role at several more.
After nearly a decade as a Microsoft Device Application Development MVP, Jim now focuses on developing Android and iOS device applications. Jim’s passion is mentoring software developers. He blogs at hedgehogjim.wordpress.com.
Improving User Interface Design with Android Fragments is the 8th course in the Pluralsight learning path for Android, and this month I am reviewing every course in this learning path.
Also in this series:
Fragments and the ActionBar
Jim introduces the ActionBar as one of the most important Android concepts.
For a more in depth look at the ActionBar see his course Improving User Interaction with the ActionBar.
The ActionBar has a close relationship with Fragments.
Fragment-specific menu options
Fragments can be used to add menu items onto the ActionBar.
This allows per-fragment specialization of the menu.
The Fragment menu options can be handled either by the Activity, or by the Fragment.
Jim says in most cases we will want to do this in the Fragment, so that we have specialization.
We are warned never to use the android:onClick attribute in our menu layout resources for our Fragments, because it always routes to the Activity.
Demo: Fragment-specific menu options
We begin with a simple app with 4 menu options:
- “Android 4.0 Course”
- “Android Intents Course”
We implement click handler methods for the first two of these:
These create a FragmentTransaction and replace the existing fragment.
We see that the Android 4.0 selection gives the app a green background and the Android Intents selection gives the app a blue background.
We also build out a big switch statement in MyActivity.java, setting handled to true in each case.
ActionBar and Fragment navigation
The ActionBar provides rich navigation behavior, including List navigation and Tabbed navigation.
List navigation provides the user with a drop-down list of screens, and the list is created as a SpinnerAdapter.
We see a screenshot of an example ActionBar with a drop-down list of email addresses. Each list item takes us to a new screen, and each screen is implemented as a fragment.
We implement this with ActionBar.OnNavigationListener interface.
Demo: List navigation
We begin in ActivityListNavigation.java and implement the ActionBar.OnNavigationListener interface and it’s onNavigationItemSelected method with a simple switch statement and a FragmentTransaction.
Jim also explains the code we need in onCreate.
We see that we can switch screens based on the list in our ActionBar.
Tabbed navigation is a 3 phase process and Jim explains what these are.
The ActionBar.TabListener handles each tab’s interaction.
The ActionBar.TabListener methods described are:
Demo: Tabbed navigation
We begin this final lesson looking at ActivityTabbed.java. We implement the ActionBar.TabListener interface and its 3 methods.
Jim explains his createTab helper method and builds out the onCreate method.
By the end of this lesson we have a bar with two tabs: “What’s New in Android 4.0” and “Android Intents”