Can anyone explain me about each term that I have used in working with calendar events?
What is uri here, what actually is content, as we can initialize int value to 0? Is it possible to initialize a uri with a default value?Uri event_uri = Uri.parse("content://com.android.calendar/" + "events");
What signifies these uri? What are the differences betweenUri reminder_uri = Uri.parse("content://com.android.calendar/" + "reminders");
event_uri
andreminder_uri
?
What does the first one do?ContentValues values = new ContentValues(); values.put("calendar_id", 1); values.put("title", str); values.put("description", m_strDescription);
values.put("calendar_id", 1);
What is the use of the content resolver? Sometimes we write:ContentResolver cr = getContentResolver();
What is this uri? How does it 开发者_开发知识库differ from the first two uris e.gUri u = cr.insert(event_uri, values)
event_uri
andreminder_uri
Again
values.put("event_id", Long.parseLong(event.getLastPathSegment())); cr.insert(remindar_uri, values);
What does it do?
Regarding questions 1 and 2, A Uri
is an address that points to something of significance. In the case of ContentProvider
s, the Uri
is usually used to determine which table to use. So event_uri
points to the events table and the reminder_uri
points to the reminders table. There is really no "default value" for uris.
Regarding question 3, the ContentValues
is essentially a set of key-value pairs, where the key represents the column for the table and the value is the value to be inserted in that column. So in the case of values.put("calendar_id", 1);
, the column is "calendar_id" and the value being inserted for that column is 1.
Regarding question 4, the ContentResolver
is what android uses to resolve Uri
s to ContentProvider
s. Anyone can create a ContentProvider
and Android has ContentProvider
s for the Calendar, Contacts, etc.. The insert()
method on a ContentResolver
returns the Uri
of the inserted row. So in questions 1 and 2, those Uri
s pointed to the table but Uri
s are hierarchical so they can resolve to a specific row. For example:
content://com.android.calendar/events
points to the events table, but
content://com.android.calendar/events/1
points to the row in the events table with id 1.
Keep in mind, that this is the usual behavior, but the providing ContentProvider
can customize the uris to be resolved differently.
I would strongly recommend reading the ContentProvider docs, especially the section on Content URIs.
From the previously recommended documentation:
In the previous lines of code, the full URI for the "words" table is:
content://user_dictionary/words
where the
user_dictionary
string is the provider's authority, andwords
string is the table's path. The stringcontent://
(the scheme) is always present, and identifies this as a content URI.
ContentValues:
public final class
ContentValues
extends Object
implements Parcelable have public methods
like: String getAsString(String KEY) , void put(Sring KEY, String value)
e.g.
public void createEntry(String name, String number){
ContentValues cval = new ContentValues();
cval.put(KEY_NAME, name); // KEY_NAME is key just like parameter in put(String key)
....
....
....
}
精彩评论