Video description
Android App Development Fundamentals I and II
LiveLessonvideo uses the same App-Driven Approach that Paul Deitel
pioneered in his successful iPhone App Development LiveLesson
video. Viewers learn Android programming technologies in the
context of 16 complete working Android apps. Each lesson presents
one app and is structured as follows: Deitel
describes the app's behavior and the technologies and the
architecture used to build it. Then Deitel does a detailed
walkthrough of the code. As part of the walkthrough, Deitel discuss
the programming concepts involved, and demonstrates the
functionality of the appropriate Android API.
By the end of the LiveLesson, viewers will gain hands-on experience
with a wide spectrum of essential Android APIs. Viewers will also
learn how to use Eclipse and Android Development Tools (ADT) for
Eclipse to successfully create, debug, and deploy Android apps.
Table of Contents
Introduction
Introduction
00:08:44
Lesson1: Setting Up Your Development Environment
Introduction
00:02:25
Installing the Java SE 6 Development Kit and the Eclipse IDE
00:09:57
Installing the Android SDK and the ADT Plugin for Eclipse
00:08:55
Installing the Android Platforms for developing Android apps
00:06:02
Creating an AVD to emulate an Android Device for testing purposes
00:17:16
Lesson 2: Test-Driving an Android App in an AVD
Introduction
00:01:25
Importing an Eclipse project for an Android app and running the app on an AVD or an actual device
00:25:20
Lesson 3: Welcome App
Introduction
00:01:05
Importing the Welcome app into Eclipse and test-driving the app
00:06:34
Creating the Welcome app’s project in Eclipse
00:10:15
Introducing the Visual Layout Editor
00:09:32
Replacing main.xml and configuring the layout
00:14:12
Adding a TextView and configuring it’s Text property as a string resource
00:09:15
Configuring the rest of the TextView’s properties
00:10:08
Adding the ImageViews
00:08:47
Examining the XML files
00:11:01
Lesson 4: Tip Calculator App
Introduction
00:01:44
Importing the Tip Calculator app into Eclipse and test-driving the app
00:05:55
Overview of the GUI and introduction to TableLayouts and TableRows
00:02:56
Building the GUI
00:24:34
Reviewing main.xml
00:21:07
TipCalculator.java: Import declarations, extending Activity and field declarations
00:11:48
TipCalculator.java: fields of class TipCalculator and a discussion of app configuration changes
00:07:29
TipCalculator.java: onCreate method
00:13:53
TipCalculator.java: updateStandard and updateCustom methods
00:02:47
TipCalculator.java: onSaveInstanceState method
00:03:39
TipCalculator.java: OnSeekBarChangeListener
00:04:10
TipCalculator.java: TextWatcher
00:03:56
Lesson 5: Favorite Twitter Searches App
Introduction
00:05:00
Importing the Favorite Twitter Searches app into Eclipse and test-driving the app
00:07:44
Reviewing the colors.xml, dimen.xml and strings.xml resource files
00:09:32
Reviewing the main.xml layout
00:13:10
Reviewing the new_tag_view.xml layout
00:03:37
FavoriteTwitterSearches.java: Import declarations, extending Activity and field declarations
00:04:21
FavoriteTwitterSearches.java: onCreate method
00:03:17
FavoriteTwitterSearches.java: refreshButtons and makeTag utility methods
00:05:48
FavoriteTwitterSearches.java: makeTagGUI utility method
00:04:03
FavoriteTwitterSearches.java: saveButtonListener anonymous inner class
00:04:50
FavoriteTwitterSearches.java: clearTagsButtonListener anonymous inner class
00:03:07
FavoriteTwitterSearches.java: queryButtonListener and editButtonListener anonymous inner classes
00:06:19
Lesson 6: Flag Quiz Game App
Introduction
00:04:11
Importing the Flag Quiz Game app and test-driving the app
00:08:02
Reviewing the colors.xml, dimen.xml and strings.xml resource files
00:06:01
Reviewing the main.xml layout
00:06:52
Reviewing the guess_button.xml layout
00:02:00
Reviewing the incorrect_shake.xml flag-shake animation
00:07:30
FlagQuizGame.java: Import declarations, extending Activity and field declarations
00:07:08
FlagQuizGame.java: onCreate method
00:04:46
FlagQuizGame.java: resetQuiz method
00:05:56
FlagQuizGame.java: loadNextFlag, getTableRow and getCountryName methods
00:07:40
FlagQuizGame.java: submitGuess and disableButtons methods
00:07:14
FlagQuizGame.java: onCreateOptionsMenu and onOptionsItemSelected methods
00:10:50
FlagQuizGame.java: OnClickListener guessButtonListener
00:00:58
FlagQuizGame.java: Android.xml
00:04:47
Lesson 7: Cannon Game App
Introduction
00:03:38
Test-driving the Cannon Game app
00:05:16
Reviewing the AndroidManifest.xml and strings.xml files
00:03:55
Reviewing the main.xml layout
00:01:23
Class Line represents a line with two endpoints
00:00:46
CannonGame.java: package statement, import statements and instance variables
00:02:21
CannonGame.java: Overriding Activity methods onCreate, onPause and onDestroy
00:02:49
CannonGame.java: Overriding Activity method onTouchEvent
00:01:31
CannonGame.java: Anonymous inner class that extends SimpleOnGestureListener
00:01:06
CannonView.java: package and import statements, extending class SurfaceView and field declarations
00:04:27
CannonView.java: Constructor
00:05:21
CannonView.java: Overridden onSizeChanged method
00:03:05
CannonView.java: newGame method
00:01:35
CannonView.java: updatePositions method
00:04:48
CannonView.java: fireCannonball method
00:01:30
CannonView.java: alignCannon method
00:01:15
CannonView.java: drawGameElements method
00:05:09
CannonView.java: showGameOverDialog method
00:03:13
CannonView.java: stopGame and releaseResources methods
00:01:15
CannonView.java: SurfaceHolder.Callback methods
00:03:12
CannonView.java: CannonThread class
00:06:25
Lesson 8: SpotOn Game App
Introduction
00:03:49
Test-driving the SpotOn Game app
00:08:16
Reviewing the AndroidManifest.xml file
00:01:22
Reviewing the layout files–main.xml, untouched.xml and life.xml
00:04:22
SpotOn.java: SpotOn subclass of Activity
00:03:20
SpotOnView.java: package statement and import statements
00:01:17
SpotOnView.java: Extending class View and field declarations
00:04:56
SpotOnView.java: Constructor
00:02:04
SpotOnView.java: Overridden onSizeChanged method
00:00:53
SpotOnView.java: pause, cancelAnimation and resume methods
00:04:12
SpotOnView.java: resetGame method
00:03:16
SpotOnView.java: initializeSoundEffects method
00:01:02
SpotOnView.java: displayScores method
00:00:24
SpotOnView.java: Runnable addSpotRunnable and method addNewSpot
00:11:49
SpotOnView.java: Runnable addSpotRunnable and method addNewSpot
00:00:39
SpotOnView.java: Overridden onTouchEvent method
00:00:46
SpotOnView.java: touchedSpot method
00:02:15
CannonView.java: missedSpot method
00:03:01
Lesson 9: Doodlz App
Introduction
00:03:27
Test-driving the Doodlz app
00:08:35
Reviewing the AndroidManifest.xml file
00:02:21
Reviewing the layout files–main.xml, color_dialog.xml and width_dialog.xml
00:05:32
Doodlz.java: package statement, import statements and fields
00:05:13
Doodlz.java: Overridden methods onCreate and onPause
00:01:49
Doodlz.java: Methods enableAccelerometerListening and disableAccelerometerListening
00:04:14
Doodlz.java: Implementing interface SensorEventListener
00:04:40
Doodlz.java: Overridden methods onCreateOptionsMenu and onOptionsItemSelected
00:02:10
Doodlz.java: Method showColorDialog and imlementing interfaces OnSeekBarChangeListener and OnClickListener
00:06:51
Doodlz.java: Method showLineWidthDialog and imlementing interfaces OnSeekBarChangeListener and OnClickListener
00:04:21
DoodleView.java: package statement and import statements
00:02:21
DoodleView.java: Extending class View, fields, constructor and overriding method onSizeChanged
00:04:54
DoodleView.java: Methods clear, setDrawingColor, getDrawingColor, setLineWidth and getLineWidth
00:01:36
DoodleView.java: Overriding method onDraw
00:02:01
DoodleView.java: Overriding method onTouchEvent
00:06:36
DoodleView.java: Method touchStarted
00:02:21
DoodleView.java: Method touchMoved
00:02:40
DoodleView.java: Method touchEnded
00:00:46
DoodleView.java: saveImage
00:06:14
Lesson 10: Address Book app
Test-driving the Address Book
00:06:24
Reviewing the AndroidManifest.xml file
00:03:14
Styles defined in styles.xml and placed in the app’s res/values folder
00:06:52
XML representation of a Drawable that’s used to place a border around a TextView
00:01:52
Layout for each item in the AddressBook ListActivity’s built-in ListView
00:05:03
ViewContact Activity’s layout: view_contact.xml
00:01:37
AddEditContact Activity’s layout: add_contact.xml
00:03:46
AddressBook activity and ViewContact activity menu layouts
00:10:18
AddressBook.java: package statement, import statements and fields
00:04:58
AddressBook.java: Overriding Activity method onCreate
00:03:50
AddressBook.java: Overriding Activity methods onResume and onStop
00:03:28
AddressBook.java: GetContactsTask subclass of AsyncTask
00:06:43
AddressBook.java: Overriding Activity methods onCreateOptionsMenu and onOptionItemSelected
00:06:05
AddressBook.java: OnItemClickListener viewContactListener that responds to ListView touch events
00:05:24
ViewContact.java: package statement, import statements and instance variables
00:01:51
ViewContact.java: Overriding Activity methods onCreate and onResume
00:02:01
ViewContact.java: LoadContactTask subclass of AsyncTask
00:04:25
ViewContact.java: Overriding Activity methods onCreateOptionsMenu and onOptionItemSelected
00:03:17
ViewContact.java: deleteContact method
00:03:25
AddEditContact.java: package statement, import statement, instance variables and overriding method onCreate
00:04:24
AddEditContact.java: saveContactButtonClicked event listener and method saveContact
00:02:55
DatabaseConnector.java: Utility class that handles all the SQLite database interactions
00:14:58
Lesson 11: Route Tracker app
Reviewing the AndroidManifest.xml file
00:05:00
RouteTracker Activity’s layout: main.xml
00:02:14
RouteTracker.java: package statement, import statements and fields
00:06:11
RouteTracker.java: Overriding Activity method onCreate
00:03:02
RouteTracker.java: Overriding Activity methods onStart and onStop
00:06:43
RouteTracker.java: updateLocation method
00:02:54
RouteTracker.java: Anonymous inner class that implements LocationListener to respond to LocationManager events
00:00:57
RouteTracker.java: Anonymous inner class that implements GpsStatus.Listener to determine when the app is able to get a GPS fix t
00:00:53
RouteTracker.java: Overriding MapActivity method isRouteDisplayed
00:00:34
RouteTracker.java: Overriding Activity methods onCreateOptionsMenu and onOptionItemSelected
00:01:23
RouteTracker.java: Anonymous inner class that OnCheckedChangeListener to respond to trackingToggleButton’s events
00:01:58
BearingFrameLayout.java: package statement, import statements and instance variables
00:01:22
BearingFrameLayout.java: getChildLayoutParams method
00:02:37
BearingFrameLayout.java: Constructor
00:01:55
BearingFrameLayout.java: Overriding View method dispatchDraw
00:02:54
BearingFrameLayout.java: setBearing and getMapView methods
00:00:27
RouteOverlay.java: package statement, import statements and instance variables
00:01:04
RouteOverlay.java: Constructor
00:00:34
RouteOverlay.java: addPoint and reset methods
00:00:36
RouteOverlay.java: Overriding View method draw
00:03:57
Lesson 12: Slideshow App
Test-driving the Slideshow app
00:07:00
Reviewing the AndroidManifest.xml file file
00:01:14
slideshow_list_item.xml: Layout for the ListView items in the Slideshow ListActivity
00:02:44
slideshow_menu.xml: Slideshow ListActivity’s menu
00:00:37
slideshow_name_edittext.xml: Custom GUI for the Set Slideshow Name AlertDialog
00:00:37
slideshow_editor.xml: Layout for the SlideshowEditor ListActivity
00:01:06
slideshow_edit_item.xml: Layout for ListView items in the SlideshowEditor ListActivity
00:00:30
slideshow_player.xml: Layout for the SlideshowPlayer Activity
00:00:29
SlideshowInfo.java: Stores data for a single slideshow
00:01:04
Slideshow.java: package statement, import statement and fields
00:03:18
Slideshow.java: Overriding Activity method onCreate
00:01:25
Slideshow.java: Overriding Activity methods onCreateOptionsMenu, onOptionsItemSelected and onActivityResult
00:08:04
Slideshow.java: Nested classes ViewHolder and SlideshowAdapter–Using the View-Holder patter to populate a ListView
00:12:05
Slideshow.java: Nested class LoadThumbnailTask for loading an image thumbnail in a separate thread
00:02:42
Slideshow.java: Event listener for playButton’s click event
00:00:46
Slideshow.java: Event listener for editButton’s click event
00:01:00
Slideshow.java: Event listener for deleteButton’s click event
00:01:46
Slideshow.java: Utility method getSlideshowInfo returns a SlideshowInfo object for the slideshow with the specified name
00:00:36
Slideshow.java: Utility method getThumbnail loads an image’s thumbnail Bitmap from a specified Uri
00:02:32
SlideshowEditor.java: package statement, import statement and instance variables
00:01:18
SlideshowEditor.java: Overriding Activity method onCreate
00:01:39
SlideshowEditor.java: Overriding Activity method onActivityResult
00:02:11
SlideshowEditor.java: Event listener for doneButton’s click event
00:00:29
SlideshowEditor.java: Event listener for addPictureButton’s click event
00:03:17
SlideshowEditor.java: Event listener for addMusicButton’s click event
00:01:42
SlideshowEditor.java: Event listener for playButton’s click event
00:00:47
SlideshowEditor.java: Event listener for deleteButton’s click event
00:00:38
SlideshowEditor.java: Nested classes ViewHolder and SlideshowEditorAdapter–Displaying slideshow images using the View-Holder pa
00:04:02
SlideshowEditor.java: Nested class LoadThumbnailTask for loading image thumbnails in a separate thread
00:02:00
SlideshowPlayer.java: package statement, import statement and fields
00:02:37
SlideshowPlayer.java: Overriding Activity method onCreate
00:03:16
SlideshowPlayer.java: Overriding Activity methods onStart, onPause, onResume, onStop and onDestroy
00:01:12
SlideshowPlayer.java: Overriding Activity method onSaveInstanceState
00:01:02
SlideshowPlayer.java: Runnable updateSlideshow displays the next image in the slideshow and schedules itself to run again in fiv
00:04:53
Lesson 13: Enhanced Slideshow App
Test-driving the Enhance d Slideshow app
00:05:16
Reviewing the AndroidManifest.xml file
00:01:17
slideshow_editor.xml: Layout for the SlideshowEditor ListActivity
00:01:35
camera_preview.xml: Layout for the PictureTaker Activity
00:00:18
slideshow_player.xml: Layout for the SlideshowPlayer Activity
00:00:38
MediaItem.java: MediaItem class used to represent images and videos in a slideshow
00:02:33
SlideshowInfo.java: Modified SlideshowInfo class stores a List of MediaItems
00:03:29
Slideshow.java: package statement, import statement and fields
00:01:58
Slideshow.java: Overriding Activity method onCreate
00:03:23
Slideshow.java: Nested class LoadSlideshowTask deserializes the List object from a file or creates the object if
00:05:34
Slideshow.java: Nested class SaveSlideshowTask serializes the List object to a file
00:03:03
Slideshow.java: Overriding Activity methods onCreateOptionsMenu, onOptionsItemSelected and onActivityResult
00:01:32
Slideshow.java: Utility method getThumbnail loads an image’s thumbnail Bitmap from a specified Uri
00:00:49
SlideshowEditor.java: Upated constants and method onActivityResult
00:02:08
SlideshowEditor.java: Event listeners for the takePictureButton and addVideoButton
00:02:07
SlideshowEditor.java: Updated nested class LoadThumbnailTask loads image or video thumbnails in a separate thread
00:00:37
PictureTaker.java: package statement, import statement and fields
00:03:12
PictureTaker.java: Overriding Activity method onCreate
00:02:01
PictureTaker.java: Overriding Activity methods onCreateOptionsMenu and onOptionsItemSelected
00:01:26
PictureTaker.java: Implementing SurfaceHolder.Callback
00:03:21
PictureTaker.java: Implementing Camera.PictureCallback
00:05:05
PictureTaker.java: Implementing OnTouchListener to handle touch events
00:01:13
SlideshowPlayer.java: package statement, import statement and fields
00:01:10
SlideshowPlayer.java: Overriding Activity method onCreate
00:00:37
SlideshowPlayer.java: Updated Runnable updateSlideshow that displays the next image or plays the next video in the slideshow
00:03:17
Lesson 14: WeatherViewer App
Test-driving the WeatherViewer app
00:09:38
Reviewing the AndroidManifest.xml file
00:02:54
weather_widget_provider_info.xml: WeatherProvider app widget configuration
00:02:39
main.xml: WeatherViewerActivity’s layout
00:01:42
arrays.xml: Default cities and ZIP codes
00:00:34
actionmenu.xml: WeatherViewerActivity’s menu layout
00:02:22
WeatherViewerActivity.java: package statement, import statements and fields
00:03:46
WeatherViewerActivity.java: Overriding Activity method onCreate
00:02:35
WeatherViewerActivity.java: Overriding Activity methods onSaveInstanceState and onRestoreInstanceState
00:00:38
WeatherViewerActivity.java: Overriding Activity method onResume
00:02:17
WeatherViewerActivity.java: Implementing CitiesListChangeListener
00:01:27
WeatherViewerActivity.java: Method loadSelectedForecast
00:01:13
WeatherViewerActivity.java: Method setPreferred
00:02:33
WeatherViewerActivity.java: Method loadSavedCities
00:01:30
WeatherViewerActivity.java: Method addSampleCities
00:00:50
WeatherViewerActivity.java: Method addCity
00:00:44
WeatherViewerActivity.java: Method selectForecast
00:04:33
WeatherViewerActivity.java: Methods correctTab and selectTab
00:01:24
WeatherViewerActivity.java: Overriding Activity methods onCreateOptionsMenu and onOptionsItemSelected
00:02:56
WeatherViewerActivity.java: Methods showAddCityDialog and onDialogFinished
00:02:17
WeatherViewerActivity.java: Method getCityNameFromZipcode
00:01:55
WeatherViewerActivity.java: Implementing LocationLoadedListener
00:01:16
WeatherViewerActivity.java: Method setupTabs
00:01:35
WeatherViewerActivity.java: Implementing TabListener
00:01:02
CitiesFragment.java: package statement, import statements and fields
00:02:54
CitiesFragment.java: Methods onActivityCreated and setCitiesListChangeListener
00:02:16
CitiesFragment.java: Nested class CitiesArrayAdapter
00:02:56
CitiesFragment.java: Implementing OnItemLongClickListener
00:03:13
CitiesFragment.java: Methods onSaveInstanceState, addCity and onListItemClick
00:01:19
AddCityDialogFragment.java: Class for a dialog that allows the user to add a city
00:05:28
ForecastFragment.java: Superclass for SingleForecastFragment and FiveDayForecastFragment
00:01:10
SingleForcastFragment.java: package statement, import statements and fields
00:02:31
SingleForcastFragment.java: Overloaded method newInstance
00:01:17
SingleForcastFragment.java: Methods onCreate, onSaveInstanceState and getZipcode
00:00:58
SingleForcastFragment.java: Method onCreateView
00:01:28
SingleForcastFragment.java: Method onActivityCreated
00:01:53
SingleForcastFragment.java: Implementing LocationLoadedListener
00:01:38
SingleForcastFragment.java: Implementing ForecastListener
00:03:00
ReadLocationTask.java: package statement, import statements and fields
00:06:19
ReadLocationTask.java: Nested interface LocationLoadedListener and ReadLocationTask’s constructor
00:00:51
ReadLocationTask.java: Method doInBackground and onPostExecute
00:06:56
ReadForecastTask.java: package statement, import statements and fields
00:02:22
ReadForecastTask.java: ForecastListener interface, constructor and setSampleSize method
00:01:48
ReadForecastTask.java: Methods doInBackground and onPostExecute
00:06:54
ReadForecastTask.java: Method getIconBitmap
00:02:07
ReadForecastTask.java: Method readForecast
00:02:40
FiveDayForecastFragment.java: package statement, import statements and fields
00:04:08
FiveDayForecastFragment.java: Overloaded newInstance methods
00:00:42
FiveDayForecastFragment.java: Methods onCreate and getZipcode
00:00:27
FiveDayForecastFragment.java: Method onCreateView
00:02:58
FiveDayForecastFragment.java: Implementing LocationLoadedListener
00:01:06
FiveDayForecastFragment.java: Implementing FiveDayForecastLoadedLoadedListener
00:00:54
FiveDayForecastFragment.java: Method loadForecastIntoView
00:01:29
ReadFiveDayForecast.java: package statement, import statements, fields and nested interface FiveDayForecastLoadedListener
00:01:31
ReadFiveDayForecast.java: Constructor
00:00:25
ReadFiveDayForecast.java: Method doInBackground
00:04:31
ReadFiveDayForecast.java: Methods readDailyForecast and onPostExecute
00:02:53
DailyForecast.java: Class DailyForecast encapsulates a single day’s weather information
00:01:03
WeatherProvider.java: package statement, import statements and constant
00:03:42
WeatherProvider.java: Methods onUpdate, getZipcode and onReceive
00:02:29
WeatherProvider.java: Method startUpdateService
00:01:09
WeatherProvider.java: Nested class WeatherService
00:03:02
WeatherProvider.java: Nested class WeatherService’s onForecastLoaded method
00:04:45
WeatherProvider.java: Nested class WeatherService’s nested listener class WeatherServiceLocationLoadedListener
00:02:16
Lesson 15: Pizza Ordering App
Test-driving the Pizza Ordering app
00:03:52
Reviewing the AndroidManifest.xml file
00:00:41
Reviewing the main.xml, strings.xml and arrays.xml files
00:01:36
Pizza.java: package statement, import statements and fields
00:03:17
Pizza.java: Overriding Activity method onCreate
00:04:36
Pizza.java: Overriding Activity method onResume
00:05:21
Pizza.java: Overriding Activity method onPause
00:00:56
Pizza.java: Method loadResources
00:01:18
Pizza.java: Method playFirstMessage
00:02:01
Pizza.java: Method utteranceCompleted
00:04:58
Pizza.java: Method listen
00:01:50
Pizza.java: Overriding Activity method onActivityResult
00:06:13
Pizza.java: Methods playError and reset
00:00:54
Pizza.java: Overriding Activity methods onSaveInstanceState and onRestoreInstanceState
00:01:09
Pizza.java: Method sendMessage
00:03:04
Pizza.java: Handler viewUpdateHandler for updating the GUI
00:02:45
Pizza.java: Method allowUserToQuit
00:00:51
Pizza.java: Overriding Activity method onDestroy
00:00:21
Lesson 16: Voice Recorder App
Test-driving the Voice Recorder app
00:05:38
Reviewing the AndroidManifest.xml file
00:00:45
main.xml: Layout for the VoiceRecorder Activity
00:01:26
name_edittext.xml: Layout for the custom AlertDialog used to name a recording
00:00:30
saved_recordings.xml: Layout for the SavedRecordings ListActivity
00:02:46
saved_recordings_row.xml: Custom ListView item layout for the SavedRecordings ListActivity
00:01:40
play_pause_drawable.xml: Drawable for the Play/Pause Button
00:03:16
VoiceRecorder.java: package statement, import statements and fields
00:01:25
VoiceRecorder.java: Overriding Activity methods onCreate, onResume and onPause
00:03:03
VoiceRecorder.java: OnCheckedChangedListener recordButtonListener starts and stops a recording
00:07:35
VoiceRecorder.java: Runnable updateVisualizer updates the VisualizerView
00:02:17
VoiceRecorder.java: OnClickListener saveButtonListener allows the use to save a new recording
00:03:26
VoiceRecorder.java: OnClickListener deleteButtonListener allows the user to delete a new recording
00:01:10
VoiceRecorder.java: OnClickListener viewSavedRecordingsListener launches the SavedRecordings ListActivity
00:00:50
VisualizerView.java: package statement, import statements, fields and constructor
00:02:30
VisualizerView.java: Overriding View method onSizeChanged
00:01:22
VisualizerView.java: Methods clear and addAmplitude
00:01:19
VisualizerView.java: Overriding View method onDraw
00:01:59
SavedRecordings.java: package statement, import statements and fields
00:02:14
SavedRecordings.java: Activity methods onCreate, onResume and onPause
00:01:34
SavedRecordings.java: Nested class SavedRecordingsAdapter (subclass of ArrayAdapter)
00:04:31
SavedRecordings.java: OnClickListener emailButtonListener allows the user to send a recording
00:02:31
SavedRecordings.java: OnClickListener deleteButtonListener allows the user to delete a saved recording
00:01:21
SavedRecordings.java: Overriding ListActivity method onListItemClick
00:03:54
SavedRecordings.java: OnSeekBarChangedListener progressChangedListener allows the user to seek to a specific position in the cur
00:01:30
SavedRecordings.java: Runnable updater changes the SeekBar’s thumb position based on the current playback position in a recordin
00:01:32
SavedRecordings.java: OnCheckedChangedListener playPauseButtonListener allows the user to play and pause the currently selected
00:01:18
Lesson 17: Address Book app
Test-driving the Enhanced Address Book app
00:04:10
Reviewing the AndroidManifest.xml file
00:01:23
addressbook_menu.xml: Updated menu for the AddressBook Activity
00:00:35
view_contact_menu.xml: Updated menu for the ViewContact Activity
00:00:42
device_chooser_layout.xml and device_layout.xml: Layout for the DeviceChooser ListActivity and layout for its ListView items
00:01:29
AddressBook.java: package statement, import statements and fields
00:07:18
AddressBook.java: Updated Activity methods onCreate and onResume
00:03:19
AddressBook.java: Updated Activity method onOptionsItemSelected
00:02:05
AddressBook.java: Activity method onActivityResult
00:02:39
AddressBook.java: Method listenForContact and nested class ReceiveContactTask
00:07:03
AddressBook.java: Utility method displayToastViaHandler
00:00:50
ViewContact.java: package statement, import statements and fields
00:01:52
ViewContact.java: Updated Activity method onCreate
00:00:36
ViewContact.java: Updated Activity method onOptionsItemSelected
00:01:52
ViewContact.java: Overriding Activity method onActivityResult
00:01:46
ViewContact.java: Nested class SendContactTask sends a contact to a remote device using a background thread
00:04:10
DeviceChooserActivity.java: package statement, import statements and fields
00:02:24
DeviceChooserActivity.java: Overriding Activity method onCreate
00:04:43
DeviceChooserActivity.java: Overriding Activity method onDestroy
00:00:38
DeviceChooserActivity.java: Method startDiscovery
00:01:04
DeviceChooserActivity.java: Implementing the OnItemClickListener deviceListItemClickListener
00:01:10
DeviceChooserActivity.java: BroadcastReceiver deviceChooserReceiver listens for broadcast Intents that indicate when a device is
00:02:10
Lesson 18: HTML5 Favorite Twitter Searches App
Test-Driving the HTML5 Favorite Twitter Searches App
00:06:41
FavoriteTwitterSearches.html: HTML5 document for the Favorite Twitter Searches web app
00:11:34
style.css: Styles used in the Favorite Twitter Searches app
00:06:28
FavoriteTwitterSearches.cs: Variable tags and function start
00:03:09
FavoriteTwitterSearches.cs: Function loadSearches
00:11:01
FavoriteTwitterSearches.cs: Function clearAllSearches
00:00:56
FavoriteTwitterSearches.cs: Function saveSearch
00:01:33
FavoriteTwitterSearches.cs: Functon deleteTag
00:00:45
FavoriteTwitterSearches.cs: Function editTag
00:02:08