O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Android App Development Fundamentals I and II LiveLessons (Video Training)

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

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