apress beginning android (2009)

357 603 0
  • Loading ...
1/357 trang
Tải xuống

Thông tin tài liệu

Ngày đăng: 31/03/2014, 16:33

Beginning Android ■■■Mark L. MurphyMurphy_2419-8FRONT.fm Page i Friday, May 29, 2009 1:33 PMBeginning AndroidCopyright © 2009 by Mark L. MurphyAll rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior written permission of the copyright owner and the publisher.ISBN-13 (pbk): 978-1-4302-2419-8ISBN-13 (electronic): 978-1-4302-2420-4Printed and bound in the United States of America 9 8 7 6 5 4 3 2 1Trademarked names may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, we use the names only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark.Java™ and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc., in the US and other countries. Apress, Inc., is not affiliated with Sun Microsystems, Inc., and this book was written without endorsement from Sun Microsystems, Inc.Lead Editor: Matthew MoodieEditorial Board: Clay Andres, Steve Anglin, Mark Beckner, Ewan Buckingham, Tony Campbell, Gary Cornell, Jonathan Gennick, Michelle Lowman, Matthew Moodie, Duncan Parkes, Jeffrey Pepper, Douglas Pundick, Frank Pohlmann, Ben Renow-Clarke, Dominic Shakeshaft, Matt Wade, Tom WelshProject Manager: Douglas SulentaCopy Editors: Candace English and Katie StenceAssociate Production Director: Kari Brooks-CoponyProduction Editor: Ellie FountainCompositor: Susan GlinertProofreader: Lisa HamiltonIndexer: BIM Indexing & Proofreading ServicesCover Designer: Kurt KramesManufacturing Director: Tom DebolskiDistributed to the book trade worldwide by Springer-Verlag New York, Inc., 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax 201-348-4505, e-mail orders-ny@springer-sbm.com, or visit http://www.springeronline.com. For information on translations, please contact Apress directly at 2855 Telegraph Avenue, Suite 600, Berkeley, CA 94705. Phone 510-549-5930, fax 510-549-5939, e-mail info@apress.com, or visit http://www.apress.com. Apress and friends of ED books may be purchased in bulk for academic, corporate, or promotional use. eBook versions and licenses are also available for most titles. For more information, reference our Special Bulk Sales–eBook Licensing web page at http://www.apress.com/info/bulksales.The information in this book is distributed on an “as is” basis, without warranty. Although every precaution has been taken in the preparation of this work, neither the author(s) nor Apress shall have any liability to any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly by the information contained in this work. The source code for this book is available to readers at http://www.apress.com. Murphy_2419-8FRONT.fm Page ii Friday, May 29, 2009 1:33 PMivContents at a GlanceAbout the Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xviiAcknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xixIntroduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiPART 1 ■ ■ ■ Core Concepts■CHAPTER 1 The Big Picture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3■CHAPTER 2 Project Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7■CHAPTER 3 Inside the Manifest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9PART 2 ■ ■ ■ Activities■CHAPTER 4 Creating a Skeleton Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15■CHAPTER 5 Using XML-Based Layouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21■CHAPTER 6 Employing Basic Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27■CHAPTER 7 Working with Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37■CHAPTER 8 Using Selection Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55■CHAPTER 9 Getting Fancy with Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71■CHAPTER 10 Employing Fancy Widgets and Containers . . . . . . . . . . . . . . . . . . . . . 93■CHAPTER 11 Applying Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113■CHAPTER 12 Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125■CHAPTER 13 Embedding the WebKit Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129■CHAPTER 14 Showing Pop-Up Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137■CHAPTER 15 Dealing with Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141■CHAPTER 16 Handling Activity Lifecycle Events . . . . . . . . . . . . . . . . . . . . . . . . . . . 147Murphy_2419-8FRONT.fm Page iv Friday, May 29, 2009 1:33 PMvPART 3 ■ ■ ■ Data Stores, Network Services, and APIs■CHAPTER 17 Using Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153■CHAPTER 18 Accessing Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167■CHAPTER 19 Working with Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175■CHAPTER 20 Managing and Accessing Local Databases . . . . . . . . . . . . . . . . . . . 193■CHAPTER 21 Leveraging Java Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201■CHAPTER 22 Communicating via the Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207PART 4 ■ ■ ■ Intents■CHAPTER 23 Creating Intent Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215■CHAPTER 24 Launching Activities and Sub-Activities . . . . . . . . . . . . . . . . . . . . . . 221■CHAPTER 25 Finding Available Actions via Introspection . . . . . . . . . . . . . . . . . . . 231■CHAPTER 26 Handling Rotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237PART 5 ■ ■ ■ Content Providers and Services■CHAPTER 27 Using a Content Provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253■CHAPTER 28 Building a Content Provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259■CHAPTER 29 Requesting and Requiring Permissions . . . . . . . . . . . . . . . . . . . . . . 269■CHAPTER 30 Creating a Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273■CHAPTER 31 Invoking a Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279■CHAPTER 32 Alerting Users via Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285Murphy_2419-8FRONT.fm Page v Friday, May 29, 2009 1:33 PMviPART 6 ■ ■ ■ Other Android Capabilities■CHAPTER 33 Accessing Location-Based Services . . . . . . . . . . . . . . . . . . . . . . . . . 293■CHAPTER 34 Mapping with MapView and MapActivity . . . . . . . . . . . . . . . . . . . . . 299■CHAPTER 35 Handling Telephone Calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309■CHAPTER 36 Searching with SearchManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313■CHAPTER 37 Development Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321■CHAPTER 38 Where Do We Go from Here? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337■APPENDIX Introducing Android 1.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339■INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347Murphy_2419-8FRONT.fm Page vi Friday, May 29, 2009 1:33 PMviiContentsAbout the Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xviiAcknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xixIntroduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiPART 1 ■ ■ ■ Core Concepts■CHAPTER 1 The Big Picture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3What Androids Are Made Of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Content Providers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Intents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Stuff at Your Disposal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Storage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Multimedia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5GPS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6Phone Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6■CHAPTER 2 Project Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Root Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7The Sweat of Your Brow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7The Rest of the Story . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8What You Get Out of It . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8■CHAPTER 3 Inside the Manifest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9In the Beginning There Was the Root, and It Was Good . . . . . . . . . . . . . . . 9Permissions, Instrumentations, and Applications (Oh, My!) . . . . . . . . . . . 10Your Application Does Something, Right? . . . . . . . . . . . . . . . . . . . . . . . . . 10Achieving the Minimum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Murphy_2419-8FRONT.fm Page vii Friday, May 29, 2009 1:33 PMviii■CONTENTS PART 2 ■ ■ ■ Activities■CHAPTER 4 Creating a Skeleton Application . . . . . . . . . . . . . . . . . . . . . . . . . . 15Begin at the Beginning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15The Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Dissecting the Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Building and Running the Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18■CHAPTER 5 Using XML-Based Layouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21What Is an XML-Based Layout? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Why Use XML-Based Layouts? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21OK, So What Does It Look Like? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22What’s with the @ Signs? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23We Attach These to the Java . . . How? . . . . . . . . . . . . . . . . . . . . . . . . . . . 23The Rest of the Story . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24■CHAPTER 6 Employing Basic Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Assigning Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Button, Button, Who’s Got the Button? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Fleeting Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Fields of Green. Or Other Colors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Just Another Box to Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Turn the Radio Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34It’s Quite a View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Useful Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Useful Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36■CHAPTER 7 Working with Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Thinking Linearly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Concepts and Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Orientation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37LinearLayout Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40All Things Are Relative . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Concepts and Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44RelativeLayout Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46Murphy_2419-8FRONT.fm Page viii Friday, May 29, 2009 1:33 PM■CONTENTSixTabula Rasa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49Concepts and Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49TableLayout Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50Scrollwork . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52■CHAPTER 8 Using Selection Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Adapting to the Circumstances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Using ArrayAdapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Other Key Adapters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56Lists of Naughty and Nice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57Spin Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59Grid Your Lions (or Something Like That . . .) . . . . . . . . . . . . . . . . . . . . . . 62Fields: Now with 35% Less Typing! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66Galleries, Give or Take the Art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69■CHAPTER 9 Getting Fancy with Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71Getting to First Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71A Dynamic Presentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73A Bit About Inflation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75And Now, Back to Our Story . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75Better. Stronger. Faster. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76Using convertView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76Using the Holder Pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78Making a List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81. . . And Checking It Twice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86■CHAPTER 10 Employing Fancy Widgets and Containers . . . . . . . . . . . . . . . 93Pick and Choose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93Time Keeps Flowing Like a River . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98Making Progress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99Putting It on My Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100The Pieces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100The Idiosyncrasies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101Wiring It Together . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102Adding Them Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104Intents and Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107Flipping Them Off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107Other Containers of Note . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112Murphy_2419-8FRONT.fm Page ix Friday, May 29, 2009 1:33 PMx■CONTENTS ■CHAPTER 11 Applying Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113Flavors of Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113Menus of Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113Menus in Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115Taking a Peek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115Yet More Inflation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121Menu XML Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121Menu Options and XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122Inflating a Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123■CHAPTER 12 Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125Love the One You’re With . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125■CHAPTER 13 Embedding the WebKit Browser . . . . . . . . . . . . . . . . . . . . . . . . . 129A Browser, Writ Small . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129Loading It Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131Navigating the Waters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132Entertaining the Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133Settings, Preferences, and Options (Oh, My!) . . . . . . . . . . . . . . . . . . . . . 135■CHAPTER 14 Showing Pop-Up Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137Raising Toasts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137Alert! Alert! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138Checking Them Out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138■CHAPTER 15 Dealing with Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141Getting Through the Handlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141Messages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141Runnables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144Running in Place . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144Where, Oh Where Has My UI Thread Gone? . . . . . . . . . . . . . . . . . . . . . . 145Now, the Caveats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145Murphy_2419-8FRONT.fm Page x Friday, May 29, 2009 1:33 PM■CONTENTSxi■CHAPTER 16 Handling Activity Lifecycle Events . . . . . . . . . . . . . . . . . . . . . . 147Schroedinger’s Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147Life, Death, and Your Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148onCreate() and onDestroy() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148onStart(), onRestart(), and onStop() . . . . . . . . . . . . . . . . . . . . . . . . . 148onPause() and onResume() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149The Grace of State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149PART 3 ■ ■ ■ Data Stores, Network Services, and APIs■CHAPTER 17 Using Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153Getting What You Want . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153Stating Your Preference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154And Now, a Word from Our Framework . . . . . . . . . . . . . . . . . . . . . . . . . . 154Letting Users Have Their Say . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155Adding a Wee Bit o’ Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159The Kind of Pop-Ups You Like . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162■CHAPTER 18 Accessing Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167You and the Horse You Rode in On . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167Readin’ ’n’ Writin’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170■CHAPTER 19 Working with Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175The Resource Lineup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175String Theory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175Plain Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176String Formats. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176Styled Text. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176Styled Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177Get the Picture? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180XML: The Resource Way . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183Miscellaneous Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186Colors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186Arrays. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187Different Strokes for Different Folks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188Murphy_2419-8FRONT.fm Page xi Friday, May 29, 2009 1:33 PM[...]... the application itself ... when you create a new Android project, you get a single activity element: Murphy_2419-8C03.fm Page 11 Wednesday, April 8, 2009 9:07 AM CHAPTER 3 ■ INSIDE THE MANIFEST Note the namespace declaration Curiously, the generated manifests apply it only on the attributes, not the elements (e.g., it’s manifest, not android: manifest)... of the root manifest element in your AndroidManifest.xml file The uses-sdk element has one attribute, minSdkVersion, indicating which SDK version your application requires: 11 Murphy_2419-8C03.fm Page 12 Wednesday, April 8, 2009 9:07 AM 12 CHAPTER 3 ■ INSIDE THE MANIFEST . Beginning Android ■■■ Mark L. Murphy Murphy_2419-8FRONT.fm Page i Friday, May 29, 2009 1:33 PM Beginning Android Copyright © 2009 by Mark L. Murphy All. please contact Apress directly at 2855 Telegraph Avenue, Suite 600, Berkeley, CA 94705. Phone 510-549-5930, fax 510-549-5939, e-mail info @apress. com, or visit http:// www .apress. com. Apress and. the Android development tools from the Android Web site before trying any of the examples listed in this book. Editions of This Book This book is being produced via a partnership between Apress
- Xem thêm -

Xem thêm: apress beginning android (2009), apress beginning android (2009), apress beginning android (2009), Creation, Yes. Myth, No.

Mục lục

Xem thêm

Gợi ý tài liệu liên quan cho bạn

Nhận lời giải ngay chưa đến 10 phút Đăng bài tập ngay