In this chapter, you created your first interactive Android app—the Tip Calculator. We overviewed the app’s capabilities, then you test-drove it to calculate standard and custom tips based on the bill amount entered. You followed detailed step-by-step instructions to build the app’s GUI using the Android Developer Tools IDE’s Graphical Layout editor, Outline window and Properties window. We also walked through the code of the Activity
subclass MainActivity
, which defined the app’s functionality.
In the app’s GUI, you used a GridLayout
to arrange the views into rows and columns. You displayed text in TextView
s and received input from an EditText
and a SeekBar
.
The MainActivity
class required many Java object-oriented programming capabilities, including classes, objects, methods, interfaces, anonymous inner classes and inheritance. We explained the notion of inflating the GUI from its XML file into its screen representation. You learned about Android’s Activity
class and part of the Activity
lifecycle. In particular, you overrode the onCreate
method to initialize the app when it’s launched. In the onCreate
method, you used Activity
method findViewById
to get references to each of the views that the app interacts with programmatically. You defined an anonymous inner class that implements the TextWatcher
interface so the app can calculate new tips and totals as the user changes the text in the EditText
. You also defined an anonymous inner class that implements the OnSeekBarChangeListener
interface so the app can calculate a new custom tip and total as the user changes the custom tip percentage by moving the SeekBar
’s thumb.
Finally, you opened the AndroidManifest.xml
file in the IDE’s Android Manifest editor to specify that the MainActivity
supports only portrait orientation and that the MainActivity
should always display the keypad.
Using the IDE’s Graphical Layout editor, Outline window, Properties window and Android Manifest editor enabled you to build this app without manipulating the XML in the project’s resource files and AndroidManifest.xml
file.
In the next chapter, we introduce collections while building the Twitter® Searches app. Many mobile apps display lists of items. You’ll do this by using a ListActivity
containing a ListView
that’s bound to an ArrayList<String>
. You’ll also store app data as user preferences and learn how to launch the device’s web browser to display a web page.