Master Android from first principles and begin the journey toward your own successful Android applications!
Dear Reader,
First, welcome to the world of Android! We’re entering a new era of mobile application development, one marked by open platforms and open source, to take ‘walled gardens’ and make them green houses for any and all to participate in. Android is relatively easy for developers, and I believe that this innovation will help generate a large ecosystem of developers and consumers within a very short time. This means that budding developers such as yourself will have many opportunities to design and build your own applications and you’ll have a huge and hungry customer base.
Second, welcome to the book! Its purpose is to start you on your way with building Android applications, and to help you master the learning curve. Android is already a rich framework, comparable in many ways to the richness Android of desktop Java environments. This means that there is a lot of cool stuff for you to pick up along your journey in order to create the slickest, most useful apps Android you can imagine.
The source code for the code samples in this book is all available from the Apress site, so you can stay as hands-on and practical as you like while I introduce you to the core of Android, and invite you to experiment with the various classes and APIs we’ll be looking at. By the time you’ve finished this book, you’ll be creating your own Android applications and asking yourself what your next great application will be…!
Enjoy!
Mark Murphy
Getting a Handle
Getting a Handle
Where do these Uri
instances come from?
The most popular starting point, if you know the type of data you want to work with, is to get the base Uri
from the content provider itself in code. For example, CONTENT_URI
is the base Uri
for contacts represented as people — this maps to content://contacts/people
. If you just need the collection, this Uri
works as is; if you need an instance and know its identifier, you can call addId()
on the Uri
to inject it, so you have a Uri
for the instance.
You might also get Uri
instances handed to you from other sources, such as getting Uri
handles for contacts via sub-activities responding to ACTION_PICK
intents. In this case, the Uri
is truly an opaque handle… unless you decide to pick it apart using the various getters on the Uri
class.
You can also hard-wire literal String
objects and convert them into Uri
instances via Uri.parse()
. For example, in Chapter 25, the sample code used an EditText
with content://contacts/people
pre-filled in. This isn’t an ideal solution, as the base Uri
values could conceivably change over time.