Seeing It in Action4:07 with Ben Deitch
In this video we'll finish setting up our ContentProvider and finally see it in action!
We just finished getting our cursor, and 0:00 now that we've got it let's loop through it and add each contact to our list. 0:02 But first we'll need to make sure that our cursor both exists and isn't empty. 0:07 So let's type if (cursor != to null to make sure it exists, 0:12 and then add && cursor.moveToFirst to make sure there is a first row. 0:19 MoveToFirst returns false if there is not a first row to move to. 0:28 Inside the if statement we can use the do while loop to loop through our cursor. 0:33 So do and then brackets. 0:39 And we'll leave the inside blank for now and at the end add 0:43 while(cursor.moveToNext. 0:47 And add a semicolon. 0:54 This way, as long as there's another row we'll keep looping. 0:56 Inside the loop, we just need to get the ID and name of our contact and 1:01 then use that to create a new text view for a linear layout. 1:06 Let's create a new string variable named id and 1:10 set it equal to cursor.getString. 1:15 And then for the column index, 1:19 let's pass in Cursor.getColumnIndex. 1:23 And then that requires the column name, so 1:29 let's pass in DatabaseHelper.COLUMN_ID and there we go. 1:32 And now that we've got our ID, let's use command or 1:38 control D to duplicate this line. 1:41 And then let's just change 1:43 id to name and ID to NAME. 1:48 Then let's create a new TextView. 1:53 TextView textView = getNewTextView, and 1:57 parse in id and name, and 2:02 then let's add that text view to our linear layout. 2:05 Linear Layout.addView textView. 2:10 And finally after the loop we need to close our cursor, cursor.close and 2:16 that's it, we're now using a content provider to serve up our data. 2:23 But before we run the app, there's one more thing we should do. 2:27 Over in the manifest, we need to declare our provider inside the application tags. 2:32 Let's add a couple lines at the bottom. 2:39 And then, add a provider tag and let it auto complete. 2:42 Next, for the authorities, let's pass in our authority, which remember, 2:47 is just the package name, plus provider. 2:51 So for me it's going to be 2:55 com.teamtreehouse.contentproviders.provi- der. 2:57 And for the name, let's give it our content provider. 3:04 Then let's close our provider tag and run the app. 3:09 Looks good so far. 3:19 Now let's see what happens when we type in a name like Stan and then hit the button. 3:21 Sweet. 3:28 It added the name to the list and we got a toast of the URI where the name is stored. 3:29 Let's add another name to get a better look at that URI. 3:35 Let's type Maddy and then click the button. 3:38 And we've got the URI of the new row as the content URI plus the ID of the row. 3:43 Awesome our content provider is all set up, and it works great. 3:50 But, so far it's only being used by one app, so 3:55 we're not getting much benefit from our content provider. 3:58 In the next video we'll create another app and 4:01 see how we can access our content provider from the outside. 4:03
You need to sign up for Treehouse in order to download course files.Sign up