3.4 Les widgets de sélections

Ces widgets servent d’aide à la rédaction ou à la sélection d’éléments.

Ces widgets s’appuient sur des adaptateurs qui offrent une interface commune aux modèles de données sous-jacents d’un widget de sélection de données. Ils fournissent la liste des données et les convertissent en différentes vues spécifiques qui sont utilisées par le widget de sélection pour l’affichage.

3.4.1 Les différents sélectionneurs

Il y a 6 types de listes de sélections :

  • La liste de base : ListView
  • La combo box : Spinner
  • Le GridView qui affiche les choix dans une grille
  • L’AutoCompleteTextView qui affiche un sous-ensemble de données en utilisant l’entrée utilisateur comme filtre sur ces données. Les données sont affichées comme avec le Spinner.
  • Les Galleries qui affichent les données sous forme d’une liste horizontale sont souvent utilisées pour la sélection d’images.

 

3.4.2 Exemple pour la ListView avec une activité qui étend ListActivity:

Cet exemple montre une liste et un champ texte. Quand on clique sur un item de la liste, le champ texte récupère la valeur de l’item sélectionné.

Trois choses sont importantes dans ce premier exemple :

  • L’utilisation de android.R.layout.simple_list_item_1 dans la définition de l’ArrayAdapter qui définit comment seront présentés les items au sein de la liste.
  • L’utilisation du tag @android :id/list comme identifiant de la ListView qui sera automatiquement interprété par l’ActivityList comme étant la liste principale.
  • Mon activité étend ListActivity.

 

 
 
 
 
/** * @author mathias seguy * @goals This class aims to show a simple List Activity
*/
public class ListViewTuto extends ListActivity {
/*** A text view  */
TextView textView;
/*** The dummy data list */
String[] items = {"item1","item2","item3","item4","item5","item6" };
/** *The arrayAdapter that manage the data displayed          */
ArrayAdapter<String> arrayAdapter;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
// Define the Adapter (Context, ListView Ressource, The items to display)
arrayAdapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);
//or using string values stored in the resources:
String[] itemsFromRes=getResources().getStringArray(R.array.itemsList);
arrayAdapter
=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,
itemsFromRes);

//Set the ArrayAdapter to the ListActivity

setListAdapter(arrayAdapter);

//The text view that displays the current selected item

textView = (TextView) findViewById(R.id.text);

}

 

/* (non-Javadoc)@see android.app.ListActivity#onListItemClick(android.widget.ListView, android.view.View, int, long)

*/

public void onListItemClick(ListView parent, View v, int position, long id) {

textView.setText(items[position]);

}

 

}


Mathias Séguy

Où le fichier xml de déclaration des éléments graphiques est :

 

 
 
 
 

<LinearLayout

xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent" >

<TextView

android:id="@+id/text"

android:layout_width="fill_parent"

android:layout_height="wrap_content"/>

<ListView

android:id="@android:id/list"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:drawSelectorOnTop="false"

/>

</LinearLayout>

Mathias Seguy

Dans votre fichier strings.xml :
 
 
 
 

 

<?xml version="1.0" encoding="utf-8"?>

<resources>

<string name="hello">Hello World, ListViewTuto!</string>

<string name="app_name">ListViewTuto2</string>

<string-array>

<item>items1</item>

<item>items2</item>

<item>items3</item>

<item>items4</item>

<item>items5</item>

<item>items6</item>

</string-array>

</resources>
Mathias Séguy
Sauvegarder
Choix utilisateur pour les Cookies
Nous utilisons des cookies afin de vous proposer les meilleurs services possibles. Si vous déclinez l'utilisation de ces cookies, le site web pourrait ne pas fonctionner correctement.
Tout accepter
Tout décliner
Essentiel
Ces cookies sont nécessaires au bon fonctionnement du site, vous ne pouvez pas les désactiver.
Affichage
Accepter
Analytique
Outils utilisés pour analyser les données de navigation et mesurer l'efficacité du site internet afin de comprendre son fonctionnement.
Google Analytics
Accepter
Décliner