que sont uri, contentValues
Quelqu'un peut-il m'expliquer chaque terme que j'ai utilisé pour travailler avec des événements de calendrier?
Uri event_uri = Uri.parse("content://com.android.calendar/" + "events");
Qu'est-ce que l'uri ici, qu'est-ce que le contenu, car nous pouvons initialiser la valeur int à 0? Est-ce
possible d'initialiser un uri avec une valeur par défaut?Uri reminder_uri = Uri.parse("content://com.android.calendar/" + "reminders");
Ce qui signifie que ces uri? Quelles sont les différences entreevent_uri
etreminder_uri
?ContentValues values = new ContentValues();
values.put("calendar_id", 1);
values.put("title", str);
values.put("description", m_strDescription);
Quel est le premier?values.put("calendar_id", 1);
-
ContentResolver cr = getContentResolver();
Quelle est l'utilisation du résolveur de contenu? Parfois, nous écrivons:Uri u = cr.insert(event_uri, values)
C'est quoi cet uri? En quoi diffère-t-il des deux premiers URI, par exempleevent_uri
etreminder_uri
Encore
values.put("event_id", Long.parseLong(event.getLastPathSegment())); cr.insert(remindar_uri, values);
Que fait-il?
2 réponses
En ce qui concerne les questions 1 et 2, un Uri
est une adresse qui indique quelque chose d'important. Dans le cas de ContentProvider
s, le Uri
est généralement utilisé pour déterminer quelle table utiliser. Donc event_uri
pointe vers la table des événements et le reminder_uri
pointe vers la table des rappels. Il n'y a vraiment pas de "valeur par défaut" pour les URI.
Concernant la question 3, la ContentValues
est essentiellement un ensemble de paires clé-valeur, où la clé représente la colonne de la table et la valeur est la valeur à insérer dans colonne. Ainsi, dans le cas de values.put("calendar_id", 1);
, la colonne est "calendar_id" et la valeur insérée pour cette colonne est 1.
En ce qui concerne la question 4, le ContentResolver
est ce que android utilise pour résoudre Uri
s à ContentProvider
s. Tout le monde peut créer un ContentProvider
et Android a ContentProvider
S pour le calendrier, les Contacts, etc.. La méthode insert()
sur un ContentResolver
renvoie le Uri
de la ligne insérée. Donc, dans les questions 1 et 2, Ces Uri
pointent vers la table mais Uri
sont hiérarchiques afin qu'ils puissent se résoudre à une ligne spécifique. Pour exemple:
content://com.android.calendar/events
pointe vers la table des événements, mais
content://com.android.calendar/events/1
pointe vers la ligne de la table des événements avec l'id 1.
Gardez à l'esprit que c'est le comportement habituel, mais la prestation ContentProvider
pouvez personnaliser les uri pour être résolue différemment.
Je recommande fortement de lire les documents ContentProvider , en particulier la section sur Les URI de contenu .
De la documentation précédemment recommandée:
Dans le lignes de code précédentes, L'URI complet pour la table" words " est:
content://user_dictionary/words
Où la chaîne
user_dictionary
est l'autorité du fournisseur, etwords
string est le chemin d'accès de la table. Le stringcontent://
(le schéma ) est toujours présent et identifie ceci en tant que contenu de l'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)
....
....
....
}