Propriété de Albiri Sigue
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
282 L’art du développement Android
● l’Uri passée à l’activité par l’appelant (CONTENT_URI), qui représente ici l’ensemble
des constantes physiques gérées par le fournisseur de contenu ;
● la liste des propriétés à récupérer (voir le code ci-après) ;
● trois valeurs null, indiquant que nous n’utilisons pas de contrainte (car l’Uri représente l’instance que nous voulons), ni de paramètres de contrainte, ni de tri (nous ne
devrions obtenir qu’une seule ligne).
private static final String[] PROJECTION = new String[] {
Provider.Constants._ID, Provider.Constants.TITLE,
Provider.Constants.VALUE};
Le plus gros "tour de magie", ici, est la liste des propriétés. La liste des propriétés pour un
fournisseur de contenu donné devrait être précisée dans la documentation (ou le code
source) de celui-ci. Ici, nous utilisons des valeurs logiques de la classe Provider qui
représentent les différentes propriétés qui nous intéressent (l’identifiant unique, le nom et
la valeur de la constante).
S’adapter aux circonstances
Lorsque managedQuery() nous a fourni un Cursor, nous avons accès au résultat de la
requête et pouvons en faire ce que nous voulons. Nous pouvons, par exemple, extraire
manuellement les données du Cursor pour remplir des widgets ou d’autres objets.
Cependant, si le but de la requête est d’obtenir une liste dans laquelle l’utilisateur pourra
choisir un élément, il est préférable d’utiliser la classe SimpleCursorAdapter, qui établit
un pont entre un Cursor et un widget de sélection comme une ListView ou un Spinner.
Pour ce faire, il suffit de copier le Cursor dans un SimpleCursorAdapter que l’on passe
ensuite au widget – ce widget montrera alors les options disponibles.
La méthode onCreate() de ConstantsBrowser, par exemple, présente à l’utilisateur la
liste des constantes physiques :
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
constantsCursor=managedQuery(Provider.Constants.CONTENT_URI,
PROJECTION, null, null, null);
ListAdapter adapter=new SimpleCursorAdapter(this,
R.layout.row, constantsCursor,
new String[] {Provider.Constants.TITLE,
Provider.Constants.VALUE},
new int[] {R.id.title, R.id.value});
setListAdapter(adapter);
registerForContextMenu(getListView());
}
Livre Android.book Page 282 Dimanche, 8. novembre 2009 12:23 12
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
282 L’art du développement Android
● l’Uri passée à l’activité par l’appelant (CONTENT_URI), qui représente ici l’ensemble
des constantes physiques gérées par le fournisseur de contenu ;
● la liste des propriétés à récupérer (voir le code ci-après) ;
● trois valeurs null, indiquant que nous n’utilisons pas de contrainte (car l’Uri représente l’instance que nous voulons), ni de paramètres de contrainte, ni de tri (nous ne
devrions obtenir qu’une seule ligne).
private static final String[] PROJECTION = new String[] {
Provider.Constants._ID, Provider.Constants.TITLE,
Provider.Constants.VALUE};
Le plus gros "tour de magie", ici, est la liste des propriétés. La liste des propriétés pour un
fournisseur de contenu donné devrait être précisée dans la documentation (ou le code
source) de celui-ci. Ici, nous utilisons des valeurs logiques de la classe Provider qui
représentent les différentes propriétés qui nous intéressent (l’identifiant unique, le nom et
la valeur de la constante).
S’adapter aux circonstances
Lorsque managedQuery() nous a fourni un Cursor, nous avons accès au résultat de la
requête et pouvons en faire ce que nous voulons. Nous pouvons, par exemple, extraire
manuellement les données du Cursor pour remplir des widgets ou d’autres objets.
Cependant, si le but de la requête est d’obtenir une liste dans laquelle l’utilisateur pourra
choisir un élément, il est préférable d’utiliser la classe SimpleCursorAdapter, qui établit
un pont entre un Cursor et un widget de sélection comme une ListView ou un Spinner.
Pour ce faire, il suffit de copier le Cursor dans un SimpleCursorAdapter que l’on passe
ensuite au widget – ce widget montrera alors les options disponibles.
La méthode onCreate() de ConstantsBrowser, par exemple, présente à l’utilisateur la
liste des constantes physiques :
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
constantsCursor=managedQuery(Provider.Constants.CONTENT_URI,
PROJECTION, null, null, null);
ListAdapter adapter=new SimpleCursorAdapter(this,
R.layout.row, constantsCursor,
new String[] {Provider.Constants.TITLE,
Provider.Constants.VALUE},
new int[] {R.id.title, R.id.value});
setListAdapter(adapter);
registerForContextMenu(getListView());
}
Livre Android.book Page 282 Dimanche, 8. novembre 2009 12:23 12
