Chapter 3: Engage! Android User Input, Variables, and Operations Objectives In this chapter, you learn to: • Use an Android theme • Add a theme to the Android Manifest file • Develop the user interface using Text Fields • State the role of different Text Fields • Display a hint using the Hint property • Develop the user interface using a Spinner control • Add text to the String table Android Boot Camp for Developers using Java 2 Objectives • • • • • • • • (continued) Add a prompt to the Spinner control Declare variables to hold data Code the GetText() method Understand arithmetic operations Convert numeric data Format numeric data Code the SetText() method Run the completed app in the emulator Android Boot Camp for Developers using Java 3 Android Themes • Engaging the user by requesting input customizes the user experience each time the application is executed • A theme is a style applied to an Activity or an entire application • The default theme is a title bar (often gray) with a black background Android Boot Camp for Developers using Java 4 AndroidThemes Figure 3-3 Default Theme (continued) Figure 3-4 Holographic Theme • Previewing a Theme – Check the main.xml file in the emulator to see what your screen looks like Android Boot Camp for Developers using Java 5 AndroidThemes (continued) • Coding a Theme in the Android Manifest File – Insert this code into the AndroidManifest.xml file android:theme="@android:style/Theme.Black.NoTitleBa r“ Figure 3-10 Adding the theme to the Android Manifest File Android Boot Camp for Developers using Java 6 Simplifying User Input – The onscreen keyboard is called a softkeyboard • Input can be in the form of tapping or gestures (using two fingers to pan, rotate, or zoom) • Primary design challenge is to simplify user experiences • Use legible fonts, simplify input, and optimize each device’s capabilities to maximize user experience Figure 3-13 Onscreen keyboard Android Boot Camp for Developers using Java 7 Simplifying User Input • (continued) Android Text Fields – Text Fields are the most common type of mobile input • • • • • Can be free-form plain text Numbers A person’s name, password, email, phone number A date Multiline text Android Boot Camp for Developers using Java 8 Simplifying User Input (continued) Figure 3-12 Types of Text Fields controls Android Boot Camp for Developers using Java 9 Simplifying User Input (continued) • Adding a Text Field – Use the Id property in the Properties pane to enter a name that begins with the prefix txt – Use descriptive names like txtTickets instead of txtText1 Figure 3-14 TextView control added and formatted Android Boot Camp for Developers using Java 10 Simplifying User Input (continued) • Setting the Hint Property for the Text Field – A hint is a short description of a field visible as lightcolored text (called a watermark) Figure 3-17 Hint added to text Field control Android Boot Camp for Developers using Java 11 Simplifying User Input (continued) • Coding the EditText Class for the Text Field – A variable is used in programming to contain data that changes during the execution of a program – Final variables can be initialized but cannot be changed – Insert this code to create a variable: final EditText tickets=(EditText) findViewById(R.id.txtTickets); Android Boot Camp for Developers using Java 12 Simplifying User Input (continued) Figure 3-18 Coding the EditText class for the Text Field Android Boot Camp for Developers using Java 13 Simplifying User Input (continued) • Android Spinner Control – A Spinner control is similar to a drop-down list for selecting a single item from a fixed list – The spinner control displays a list of strings called items in a pop-up window – A string is a series of alphanumeric characters that can include spaces Android Boot Camp for Developers using Java 14 Simplifying User Input (continued) • Using the String Table – A file named strings.xml is part of all Android apps and contains a list of commonly used strings – Android loads the resources from the project’s String table – Android can select text using Localization which allows for changing text based on the user’s preferred language – A prompt is used to display instructions at the top of the spinner control Android Boot Camp for Developers using Java 15 Simplifying User Input (continued) • Adding a Spinner Control with String Array Entries – A Spinner property named Entries connects the String Array to the Spinner control • Coding the Spinner Control Figure 3-26 Coding the Spinner Control Android Boot Camp for Developers using Java 16 Simplifying User Input (continued) • Adding the Button, TextView, and ImageView Controls Figure 3-27 Adding a Button control Android Boot Camp for Developers using Java 17 Simplifying User Input (continued) Figure 3-28 Coding the button Android Boot Camp for Developers using Java 18 Simplifying User Input (continued) Figure 3-29 Adding a TextView control to display results Android Boot Camp for Developers using Java 19 Simplifying User Input (continued) Figure 3-30 Assigning the TextView control to a variable Android Boot Camp for Developers using Java 20 Simplifying User Input (continued) Figure 3-31 Adding a ImageView control Android Boot Camp for Developers using Java 21 Declaring Variables • Primitive Data Types Table 3-1 Primitive data types in Java Android Boot Camp for Developers using Java 22 Declaring Variables (continued) • String Data Type – A string can be a character, word, or phrase • Declaring the Variables – Typically declared at the beginning of an Activity – Variables must be declared before you can use them Android Boot Camp for Developers using Java 23 Declaring Variables (continued) Figure 3-32 Declaring variables for the Activity Android Boot Camp for Developers using Java 24 Declaring Variables (continued) • GetText() Method – Read data stored in the EditText control with the GetText() method – Data is read in as a string, by default – A Parse class is used to convert strings into numbers Table 3-2 Parse type conversions Android Boot Camp for Developers using Java 25 Working with Mathematical Operations • Arithmetic Operators Table 3-3 Java arithmetic operators Android Boot Camp for Developers using Java 26 Working with Mathematical Operations (cont’d) • Formatting Numbers – Currency format requires a dollar sign, a comma (if needed), a decimal point, and two decimal places – Java has a class called DecimalFormat that provides patterns, such as $###,###.## for displaying on the Android screen Figure 3-34 Calculating and formatting the ticket cost Android Boot Camp for Developers using Java 27 Displaying Android Output • GetSelectedItem() Method – The GetSelectedItem() method returns the text label of the currently selected Spinner item • SetText () Method – The SetText() method displays text in a TextView control Android Boot Camp for Developers using Java 28 Displaying Android Output (continued) Figure 3-35 Completed code Android Boot Camp for Developers using Java 29 Summary • Assign a theme to an Activity or an entire application to prevent apps from looking too similar • Define a theme in the Android Manifest file for each Activity • Use Text Fields to request input from users • Use a control’s Hint property to provide guidelines to users so they know what to enter • Use the EditText class to extract text users have entered and store that text in a variable • Use GetText() to get data and SetText() to display data Android Boot Camp for Developers using Java 30 Summary (continued) • Strings.xml is part of every Android application • You can edit a string in the strings.xml file to update text anywhere in the application • Use GetSelectedItem() to return the text of the selected Spinner item • To use a variable, you must first declare it • Variables are declared at the beginning of an Activity • Convert variables to the correct data type using the Parse class Android Boot Camp for Developers using Java 31