Romain
Chiappinelli
Views & View Events
View Groups, AdapterViews & Layouts
Menus & ActionBar
Dialogs
Activities usually display a user
interface
Android provides many classes for
constructing user interfaces
Key building block for UI
components
Occupy a rectangular space on
screen
Responsible for drawing
themselves and for handling
events
Button
ToggleButton
Checkbox
RatingBar
AutoCompleteTextView
View that can be clicked on to perform
an action
UIButton
UIButton
A 2-state Button
checked/not checked state
Light indicator showing state
UIToggleButton
UIToggleButton
Another kind of 2-state button
Checked/not checked
UICheckbox
UICheckbox
A view comprising a row of stars
the user can click or drag the stars to
highlight some number of them
UIRatingBar
UIRatingBar
An editable text field that provides
completion suggestions as the user
types in text
UIAutoComplete
TextView
UIAutoComplete
Set visibility: show or hide view
Set Checked state
Set Listeners: Code that should be
executed when specific events occur
Set properties: opacity, background,
rotation
Manage input focus: allow view to
take focus, request focus
User interaction
Touch
Keyboard/trackball/D-pad
System control
Lifecycle changes
Often handle events with listeners
Numerous Listener interfaces defined by
the View class
[Link]()
View has been clicked
[Link]()
View has been pressed & held
OnFocusChangeListener."
onFocusChange()
View has received or lost focus
[Link]()
View about to receive a hardware
key press
Views are organized in a Tree
Displaying has multiple steps
Measure – get dimensions of each View
Layout – Position each View
Draw – Draw each view
Custom View subclasses can override
various View methods
onMeasure()
Determine the size of this View and its
children
onLayout()
View must assign a size and position to
all its children
onDraw()
View should render its content
onFocusChanged()
View’s focus state has changed
onKeyUp(), onKeyDown()
A hardware key event has occurred
onWindowVisibilityChanged()
Window containing view has changed its
visibility status
An invisible View that contains
other views
Used for grouping & organizing a
set of views
Base class for view containers &
layouts
RadioGroup
TimePicker
DatePicker
WebView
MapView
Gallery
Spinner
A ViewGroup containing a set of
Radio Buttons (CheckBoxes)
Only one button can be selected at
any one instant
UIRadioGroup
UIRadioGroup
UIRadioGroup
A ViewGroup that allows the user to
select a time
UITimePicker
UITimePicker
UITimePicker
A ViewGroup that allows the user to
select a date
UIDatePicker
UIDatePicker
UIDatePicker
A ViewGroup that displays a web page
UIWebView
UIWebView
UIWebView
A ViewGroup that displays a Map
UIGoogleMaps
UIGoogleMaps
AdapterViews are views whose
children and data are managed by
an Adapter
Adapter manages the data and
provides data views to AdapterView
AdapterView displays the data Views
AdapterView displaying a
scrollable list of selectable items
Items managed by a ListAdapter
ListView can filter the list of items
based on text input
UIListView
UIListView
An AdapterView that provides a
scrollable list of items
User can select one item from the list
Items managed by a SpinnerAdapter
UISpinner
UISpinner
A ViewGroup showing a horizontally
scrolling list
Items managed by a SpinnerAdapter
UIGallery
UIGallery
UIGallery
UIGallery
A generic Viewgroup that defines a
structure for the Views it contains
Child views arranged in a single
horizontal or vertical row
UILinearLayout
UILinearLayout
Child views are positioned relative to
each other and to parent view
UIRelativeLayout
UIRelativeLayout
Child views arranged into rows &
columns
UITableLayout
UITableLayout
Child views arranged in a two-
dimensional, scrollable grid
UIGridView
UIGridView
Activities support menus
Activities can
Add items to a menu
handle clicks on the menu items
Options
menu shown when user presses the menu
button
Context
View-specific menu shown when user
touches and holds the view
Submenu
A menu activated when user touches a
visible menu item
Options Menus
Context Menus
SubMenus
Define menu resource in XML file
Store in res/menu/[Link]
Inflate menu resource using Menu
Inflater in onCreate…Menu() methods
Handling item selection in appropriate
on…ItemsSelected() methods
HelloAndroid
WithMenus
HelloAndroidWithMenus
HelloAndroidWithMenus
Many other features supported
Grouping menu items
Binding shortcut keys to menu items
Binding Intents to menu items
Similar to Application Bar in many
desktop applications
Enables quick Access to common
operations
Shows play titles and one quote from
the selected play
Provides actions for the ActionBar
Three main objects
QuoteViewerActivity
TitleFragment
QuoteFragment
Screen is divided into tab & content
areas
Allows multiple Fragments to share
single content area
Each tab is associated with one
Fragment
Exactly one tab is selected at
any given time
Fragment corresponding to the
selected tab is visible in the
content area
UITabLayout
UITabLayout
UITabLayout
Independent subwindows used by
Activities to communicate with user
AlertDialog
ProgressDialog
DatePickerDialog
TimePickerDialog
UIAlertDialog
ProgressDialog
UIAlertDialog
User Notifications