Propriété de Albiri Sigue
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
346 L’art du développement Android
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case LOCAL_SEARCH_ID:
onSearchRequested();
return(true);
case GLOBAL_SEARCH_ID:
startSearch(null, false, null, true);
return(true);
case CLOSE_ID:
finish();
return(true);
}
return(super.onOptionsItemSelected(item));
}
}
Cette activité prend en charge tout ce qui est lié à l’affichage d’une liste de mots, y
compris l’extraction des mots à partir du fichier XML. En revanche, elle ne fournit pas le
ListAdapter à placer dans la ListView – cette tâche est déléguée aux sous-classes.
L’activité principale – LoremDemo – utilise simplement un ListAdapter pour la liste de mots :
package com.commonsware.android.search;
import android.content.Intent;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
public class LoremDemo extends LoremBase {
@Override
ListAdapter makeMeAnAdapter(Intent intent) {
return(new ArrayAdapter(this,
android.R.layout.simple_list_item_1,
items));
}
}
L’activité de recherche, cependant, fonctionne un peu différemment. Elle commence par
inspecter l’intention fournie à la méthode makeMeAnAdapter() ; cette intention provient
soit d’onCreate(), soit d’onNewIntent(). S’il s’agit d’ACTION_SEARCH, on sait que c’est
une recherche : on peut donc récupérer la requête et, dans le cas de notre exemple stupide,
dérouler la liste des mots chargés pour ne conserver que ceux qui contiennent la chaîne
recherchée. La liste ainsi obtenue est ensuite enveloppée dans un ListAdapter que l’on
renvoie pour qu’il soit affiché :
package com.commonsware.android.search;
import android.app.SearchManager;
import android.content.Intent;
Livre Android.book Page 346 Dimanche, 8. novembre 2009 12:23 12
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
346 L’art du développement Android
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case LOCAL_SEARCH_ID:
onSearchRequested();
return(true);
case GLOBAL_SEARCH_ID:
startSearch(null, false, null, true);
return(true);
case CLOSE_ID:
finish();
return(true);
}
return(super.onOptionsItemSelected(item));
}
}
Cette activité prend en charge tout ce qui est lié à l’affichage d’une liste de mots, y
compris l’extraction des mots à partir du fichier XML. En revanche, elle ne fournit pas le
ListAdapter à placer dans la ListView – cette tâche est déléguée aux sous-classes.
L’activité principale – LoremDemo – utilise simplement un ListAdapter pour la liste de mots :
package com.commonsware.android.search;
import android.content.Intent;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
public class LoremDemo extends LoremBase {
@Override
ListAdapter makeMeAnAdapter(Intent intent) {
return(new ArrayAdapter
android.R.layout.simple_list_item_1,
items));
}
}
L’activité de recherche, cependant, fonctionne un peu différemment. Elle commence par
inspecter l’intention fournie à la méthode makeMeAnAdapter() ; cette intention provient
soit d’onCreate(), soit d’onNewIntent(). S’il s’agit d’ACTION_SEARCH, on sait que c’est
une recherche : on peut donc récupérer la requête et, dans le cas de notre exemple stupide,
dérouler la liste des mots chargés pour ne conserver que ceux qui contiennent la chaîne
recherchée. La liste ainsi obtenue est ensuite enveloppée dans un ListAdapter que l’on
renvoie pour qu’il soit affiché :
package com.commonsware.android.search;
import android.app.SearchManager;
import android.content.Intent;
Livre Android.book Page 346 Dimanche, 8. novembre 2009 12:23 12
