- Page 1 and 2: The Busy Coder's Guide to Android D
- Page 3: The Busy Coder's Guide to Android D
- Page 7 and 8: Using Selection Widgets............
- Page 9 and 10: Embedding the WebKit Browser.......
- Page 11 and 12: Styled Text........................
- Page 13 and 14: query()............................
- Page 15 and 16: You Make the Call!.................
- Page 17 and 18: Handling API Changes...............
- Page 19 and 20: your operating system does not supp
- Page 21 and 22: The book does not cover in any deta
- Page 23 and 24: • Places where you think we could
- Page 25 and 26: Subscribe to updates at http://comm
- Page 27 and 28: Subscribe to updates at http://comm
- Page 29 and 30: The Big Picture • Keyboards, if t
- Page 31 and 32: Content Providers The Big Picture C
- Page 33 and 34: Subscribe to updates at http://comm
- Page 35 and 36: Projects and Targets To test your a
- Page 37 and 38: Projects and Targets • libs/, whi
- Page 39 and 40: Projects and Targets You also indic
- Page 41 and 42: Projects and Targets In the preced
- Page 43 and 44: Projects and Targets ... At the
- Page 45 and 46: Projects and Targets You can create
- Page 47 and 48: Projects and Targets • Only ask f
- Page 49 and 50: Subscribe to updates at http://comm
- Page 51 and 52: Creating a Skeleton Application For
- Page 53 and 54: Creating a Skeleton Application The
- Page 55 and 56:
Creating a Skeleton Application Fig
- Page 57 and 58:
Subscribe to updates at http://comm
- Page 59 and 60:
Using XML-Based Layouts Android's S
- Page 61 and 62:
Using XML-Based Layouts Since this
- Page 63 and 64:
} public void onClick(View view) {
- Page 65 and 66:
Subscribe to updates at http://comm
- Page 67 and 68:
Employing Basic Widgets • android
- Page 69 and 70:
Employing Basic Widgets Each widget
- Page 71 and 72:
Employing Basic Widgets For this pr
- Page 73 and 74:
Employing Basic Widgets The corresp
- Page 75 and 76:
Turn the Radio Up Employing Basic W
- Page 77 and 78:
It's Quite a View Employing Basic W
- Page 79 and 80:
Subscribe to updates at http://comm
- Page 81 and 82:
Thinking Linearly Working with Cont
- Page 83 and 84:
Working with Containers • Set all
- Page 85 and 86:
Example Working with Containers Let
- Page 87 and 88:
} } } Working with Containers case
- Page 89 and 90:
Working with Containers If we toggl
- Page 91 and 92:
Working with Containers Positions R
- Page 93 and 94:
Working with Containers android:lay
- Page 95 and 96:
Working with Containers first in th
- Page 97 and 98:
Putting Cells in Rows Working with
- Page 99 and 100:
Working with Containers You can als
- Page 101 and 102:
Working with Containers
- Page 103 and 104:
Working with Containers the remaini
- Page 105 and 106:
Using Selection Widgets listbox. Th
- Page 107 and 108:
Using Selection Widgets android:lay
- Page 109 and 110:
Using Selection Widgets Then, rathe
- Page 111 and 112:
Using Selection Widgets the setDrop
- Page 113 and 114:
Using Selection Widgets Figure 24.
- Page 115 and 116:
Using Selection Widgets For example
- Page 117 and 118:
Using Selection Widgets TextView, w
- Page 119 and 120:
Using Selection Widgets something n
- Page 121 and 122:
Using Selection Widgets Figure 28.
- Page 123 and 124:
Using Selection Widgets • android
- Page 125 and 126:
Getting Fancy With Lists For exampl
- Page 127 and 128:
Getting Fancy With Lists A Dynamic
- Page 129 and 130:
Getting Fancy With Lists In the sam
- Page 131 and 132:
And you want happy users, right? Ge
- Page 133 and 134:
Using the Holder Pattern Getting Fa
- Page 135 and 136:
Getting Fancy With Lists super.onCr
- Page 137 and 138:
} Getting Fancy With Lists public v
- Page 139 and 140:
Getting Fancy With Lists So, let's
- Page 141 and 142:
Getting Fancy With Lists 1. While w
- Page 143 and 144:
Getting Fancy With Lists Figure 33.
- Page 145 and 146:
Getting Fancy With Lists So if we w
- Page 147 and 148:
Getting Fancy With Lists layout.set
- Page 149 and 150:
Getting Fancy With Lists public Rat
- Page 151 and 152:
Getting Fancy With Lists Details of
- Page 153 and 154:
Employing Fancy Widgets and Contain
- Page 155 and 156:
Employing Fancy Widgets and Contain
- Page 157 and 158:
Employing Fancy Widgets and Contain
- Page 159 and 160:
Employing Fancy Widgets and Contain
- Page 161 and 162:
Employing Fancy Widgets and Contain
- Page 163 and 164:
Employing Fancy Widgets and Contain
- Page 165 and 166:
Employing Fancy Widgets and Contain
- Page 167 and 168:
Employing Fancy Widgets and Contain
- Page 169 and 170:
Employing Fancy Widgets and Contain
- Page 171 and 172:
Employing Fancy Widgets and Contain
- Page 173 and 174:
Employing Fancy Widgets and Contain
- Page 175 and 176:
Employing Fancy Widgets and Contain
- Page 177 and 178:
Employing Fancy Widgets and Contain
- Page 179 and 180:
Employing Fancy Widgets and Contain
- Page 181 and 182:
The Input Method Framework Of cours
- Page 183 and 184:
The Input Method Framework H
- Page 185 and 186:
The Input Method Framework Numbers
- Page 187 and 188:
The Input Method Framework android:
- Page 189 and 190:
The Input Method Framework Figure 5
- Page 191 and 192:
Applying Menus will appear, showing
- Page 193 and 194:
Applying Menus appropriate behavior
- Page 195 and 196:
Applying Menus @Override public voi
- Page 197 and 198:
Applying Menus Figure 56. The MenuD
- Page 199 and 200:
Applying Menus Figure 59. The same
- Page 201 and 202:
Applying Menus • You must
- Page 203 and 204:
Applying Menus In the layout XML sh
- Page 205 and 206:
Fonts 178 Subscribe
- Page 207 and 208:
The results? Fonts Figure 61. The F
- Page 209 and 210:
Fonts And, of course, Android's int
- Page 211 and 212:
android:layout_width="fill_parent"
- Page 213 and 214:
Embedding the WebKit Browser on the
- Page 215 and 216:
Embedding the WebKit Browser • go
- Page 217 and 218:
Running this activity gives us: Emb
- Page 219 and 220:
Subscribe to updates at http://comm
- Page 221 and 222:
Showing Pop-Up Messages from the cu
- Page 223 and 224:
Showing Pop-Up Messages android:lay
- Page 225 and 226:
Showing Pop-Up Messages Figure 66.
- Page 227 and 228:
Dealing with Threads - merely creat
- Page 229 and 230:
Dealing with Threads super.onCreate
- Page 231 and 232:
Runnables Dealing with Threads If y
- Page 233 and 234:
Dealing with Threads AsyncTask, Gen
- Page 235 and 236:
import android.widget.ArrayAdapter;
- Page 237 and 238:
Dealing with Threads Since we elect
- Page 239 and 240:
Dealing with Threads Figure 68. The
- Page 241 and 242:
Subscribe to updates at http://comm
- Page 243 and 244:
Handling Activity Lifecycle Events
- Page 245 and 246:
onPause() and onResume() Handling A
- Page 247 and 248:
Subscribe to updates at http://comm
- Page 249 and 250:
What's Your Intent? Creating Intent
- Page 251 and 252:
Creating Intent Filters Basically,
- Page 253 and 254:
Narrow Receivers Creating Intent Fi
- Page 255 and 256:
Subscribe to updates at http://comm
- Page 257 and 258:
Launching Activities and Sub-Activi
- Page 259 and 260:
Launching Activities and Sub-Activi
- Page 261 and 262:
} }); } } Launching Activities and
- Page 263 and 264:
Launching Activities and Sub-Activi
- Page 265 and 266:
Launching Activities and Sub-Activi
- Page 267 and 268:
Subscribe to updates at http://comm
- Page 269 and 270:
Handling Rotation control over the
- Page 271 and 272:
Uri contact=null; Handling Rotation
- Page 273 and 274:
Handling Rotation Figure 74. The Ro
- Page 275 and 276:
Handling Rotation viewButton.setOnC
- Page 277 and 278:
Handling Rotation android:versionNa
- Page 279 and 280:
Handling Rotation To block Android
- Page 281 and 282:
Handling Rotation Note that Android
- Page 283 and 284:
Subscribe to updates at http://comm
- Page 285 and 286:
Subscribe to updates at http://comm
- Page 287 and 288:
Working with Resources • Strings,
- Page 289 and 290:
Working with Resources ((TextView)f
- Page 291 and 292:
@Override public void onCreate(Bund
- Page 293 and 294:
Got the Picture? Working with Resou
- Page 295 and 296:
Working with Resources Figure 79. T
- Page 297 and 298:
Working with Resources public void
- Page 299 and 300:
10px 1in Working with Resources In
- Page 301 and 302:
Working with Resources Different St
- Page 303 and 304:
Working with Resources • There ca
- Page 305 and 306:
Working with Resources 2. Next, And
- Page 307 and 308:
Subscribe to updates at http://comm
- Page 309 and 310:
Using Preferences 3. getDefaultShar
- Page 311 and 312:
Using Preferences allowing users to
- Page 313 and 314:
Using Preferences Figure 81. The Si
- Page 315 and 316:
Using Preferences The fields for
- Page 317 and 318:
Using Preferences Any children of P
- Page 319 and 320:
Using Preferences Figure 85. The ch
- Page 321 and 322:
Philadelphia Pittsburgh Allentown/B
- Page 323 and 324:
Using Preferences Figure 88. Editin
- Page 325 and 326:
Managing and Accessing Local Databa
- Page 327 and 328:
Managing and Accessing Local Databa
- Page 329 and 330:
Managing and Accessing Local Databa
- Page 331 and 332:
Managing and Accessing Local Databa
- Page 333 and 334:
Managing and Accessing Local Databa
- Page 335 and 336:
Managing and Accessing Local Databa
- Page 337 and 338:
Managing and Accessing Local Databa
- Page 339 and 340:
Subscribe to updates at http://comm
- Page 341 and 342:
Accessing Files application package
- Page 343 and 344:
} } Accessing Files .makeText(this,
- Page 345 and 346:
android:text="Close" /> Accessing
- Page 347 and 348:
Accessing Files openFileInput() to
- Page 349 and 350:
Subscribe to updates at http://comm
- Page 351 and 352:
Leveraging Java Libraries • Size:
- Page 353 and 354:
android:layout_height="wrap_content
- Page 355 and 356:
Leveraging Java Libraries Figure 96
- Page 357 and 358:
Reviewing the Script Leveraging Jav
- Page 359 and 360:
Communicating via the Internet styl
- Page 361 and 362:
Communicating via the Internet We h
- Page 363 and 364:
Communicating via the Internet for
- Page 365 and 366:
Subscribe to updates at http://comm
- Page 367 and 368:
Subscribe to updates at http://comm
- Page 369 and 370:
Pieces of Me Using a Content Provid
- Page 371 and 372:
Using a Content Provider This metho
- Page 373 and 374:
Using a Content Provider • The pr
- Page 375 and 376:
Using a Content Provider To delete
- Page 377 and 378:
First, Some Dissection Building a C
- Page 379 and 380:
onCreate() Building a Content Provi
- Page 381 and 382:
Building a Content Provider } else
- Page 383 and 384:
Building a Content Provider WHERE c
- Page 385 and 386:
getType() Building a Content Provid
- Page 387 and 388:
Building a Content Provider
- Page 389 and 390:
Subscribe to updates at http://comm
- Page 391 and 392:
Mother, May I? Requesting and Requi
- Page 393 and 394:
Requesting and Requiring Permission
- Page 395 and 396:
Requesting and Requiring Permission
- Page 397 and 398:
Service with Class Creating a Servi
- Page 399 and 400:
Creating a Service immune to garbag
- Page 401 and 402:
Creating a Service For example, the
- Page 403 and 404:
Creating a Service @Override protec
- Page 405 and 406:
The Ties That Bind Invoking a Servi
- Page 407 and 408:
Invoking a Service private void upd
- Page 409 and 410:
Subscribe to updates at http://comm
- Page 411 and 412:
Alerting Users Via Notifications In
- Page 413 and 414:
import android.app.Activity; import
- Page 415 and 416:
Alerting Users Via Notifications 4.
- Page 417 and 418:
Subscribe to updates at http://comm
- Page 419 and 420:
Subscribe to updates at http://comm
- Page 421 and 422:
Accessing Location-Based Services L
- Page 423 and 424:
Accessing Location-Based Services
- Page 425 and 426:
Accessing Location-Based Services
- Page 427 and 428:
Subscribe to updates at http://comm
- Page 429 and 430:
Mapping with MapView and MapActivit
- Page 431 and 432:
Mapping with MapView and MapActivit
- Page 433 and 434:
Rugged Terrain Mapping with MapView
- Page 435 and 436:
Mapping with MapView and MapActivit
- Page 437 and 438:
Mapping with MapView and MapActivit
- Page 439 and 440:
Mapping with MapView and MapActivit
- Page 441 and 442:
Handling Telephone Calls Report To
- Page 443 and 444:
Handling Telephone Calls The activi
- Page 445 and 446:
Subscribe to updates at http://comm
- Page 447 and 448:
Development Tools Figure 105. ReadW
- Page 449 and 450:
Development Tools Figure 107. Hiera
- Page 451 and 452:
Development Tools Figure 109. Hiera
- Page 453 and 454:
Development Tools What may not be i
- Page 455 and 456:
Logging Development Tools Figure 11
- Page 457 and 458:
Development Tools Figure 114. DDMS
- Page 459 and 460:
Development Tools Figure 116. DDMS
- Page 461 and 462:
Development Tools Figure 118. Simul
- Page 463 and 464:
Put It On My Card Development Tools
- Page 465 and 466:
Subscribe to updates at http://comm
- Page 467 and 468:
Subscribe to updates at http://comm
- Page 469 and 470:
Taking the Default Handling Multipl
- Page 471 and 472:
Handling Multiple Screen Sizes •
- Page 473 and 474:
Handling Multiple Screen Sizes Thes
- Page 475 and 476:
Density-Based Sets Handling Multipl
- Page 477 and 478:
Handling Multiple Screen Sizes •
- Page 479 and 480:
Handling Multiple Screen Sizes size
- Page 481 and 482:
Handling Multiple Screen Sizes Repl
- Page 483 and 484:
Handling Multiple Screen Sizes scal
- Page 485 and 486:
Handling Multiple Screen Sizes R.st
- Page 487 and 488:
Handling Multiple Screen Sizes Figu
- Page 489 and 490:
Handling Multiple Screen Sizes />
- Page 491 and 492:
Handling Multiple Screen Sizes Now
- Page 493 and 494:
super.onCreate(savedInstanceState);
- Page 495 and 496:
Handling Multiple Screen Sizes In s
- Page 497 and 498:
Dealing With Devices Fortunately, s
- Page 499 and 500:
Dealing With Devices Market are tes
- Page 501 and 502:
Dealing With Devices The CLIQ also
- Page 503 and 504:
Subscribe to updates at http://comm
- Page 505 and 506:
Not all devices will be this way. H
- Page 507 and 508:
The lessons to take from this: Hand
- Page 509 and 510:
Handling Platform Changes Note that
- Page 511 and 512:
Wrapping the API Handling Platform
- Page 513 and 514:
Handling Platform Changes } else {
- Page 515 and 516:
} } Handling Platform Changes publi
- Page 517 and 518:
Subscribe to updates at http://comm
- Page 519 and 520:
You might also consider: Where Do W
- Page 521 and 522:
Subscribe to updates at http://comm
- Page 523 and 524:
ContentManager.....................
- Page 525 and 526:
PreferenceCategory.................
- Page 527 and 528:
INTEGER............................
- Page 529 and 530:
getSpeed().........................
- Page 531 and 532:
setColumnShrinkable()..............
- Page 533:
android:paddingBottom..............