Le WIKI francophone consacré à Windows Phone et à Android ...

Pointui Home 2 - ListScreen

RSS
Cette classe hérite de Screen.

Affiche un écran contenant une liste d'élément avec une barre d'ascenseur verticale.

Évènements

void OnListItemClick (ListItem li, int x, int y)
Capture l'endroit où l'utilisateur clique dans la liste.

void OnListItemRightButtonClick (ListItem li, int x, int y)
Capture quand l'utilisateur clique sur le bouton icône droit dans une liste de type "IconText".

Méthodes

void AddItem(String id, String text)
void AddItem(String id, String text, ListItem newItem)
void AddItem(String id, String text, String iconFileName)
void AddItem(String id, String text, String iconFileName, ListItem newItem)

Créée un un nouvel élément de liste et l'ajoute dans la liste. Ces méthodes sont appelées pour ajouter des éléments manuellement dans un écran de type liste.

La collection Attributes de l'objet ListItem créé possède ses propres attributs en fonction des paramètres fournis.

void SetData(DataTable sourceForListItem)
void SetData(DataTable sourceForListItem, int itemsToLoadPerFrame)

Indique à l'objet ListScreen la source des éléments à afficher. Si le nombre d'éléments à charger par page n'est pas spécifié alors tous les éléments de la liste seront créés avant que l'écran soit affiché. Sinon ils seront chargés page par page. Pour de petites listes le temps de chargement peut être négligeable et ce nombre est alors inutile. Cependant, il est recommandé de l'utiliser pour les grandes listes afin de ne pas ralentir le processus et donner à l'utilisateur la perception d'une meilleure réactivité.

Il faut noter que seul un objet DataTable est fourni à la méthode SetData, et qu'il n'y a pas d'instruction pour préciser le type de liste à créer ni comment définir ses attributs. La raison est que ListScreen pilote uniquement la navigation dans la table de données et laisse la méthode InitListItem() (provenant du script) prendre la main pour les opérations spéicifiques sur chaque élément de la liste.

  • Exemple
    class ScreenRunningApps : ListScreen 
    {
    //table hébergeant la liste des applications en cours d'exécution
    DataTable tbl;

    void Load()
    {
    //récupération des applications en cours d'exécution
    Process.GetRunningApplications(tbl);

    //précise l'écran liste à utiliser pour cette table de données
SetData(tbl); } //implementation de InitListItem() //Cette méthode est appelée pour chaque ListItem qui est créé quand l'écran //navigue à travers chaque ligne de la Datatable fournie void InitListItem(ListItem li) { //définit le type d'élement de la liste li.SetType("IconText"); //lecture des valeurs de la DataTable int hwnd; String title; Surface icon; tbl.GetValue("HWND", hwnd); tbl.GetValue("Title", title); tbl.GetValue("Icon", icon); //Definit les attributs requis pour afficher l'icone et le texte //Stockage de l'identifiant unique (hwnd) pour chaque élément li.Attributes.Add("ID", hwnd); li.Attributes.Add("Text", title); li.Attributes.Add("Icon", icon); } }

void InitListItem(ListItem li)
Si cette méthode est présente dans le script, elle sera alors appelée pour chaque élément de liste qui est créé lorsque les lignes de la DataTable sont générées. Voir SetData().

void GetSelectedIndex(int result)
Restitue l'index de l'élément sélectionné dans la liste (le premier élément ayant l'index zéro).

void GetSelectedItem(ListItem result)
Restitue le contenu de l'élément sélectionné dans la liste.

void SetSelectedItemID(String id)
Définit l'attribut identifiant pour l'élément sélectionné dans la liste (dans sa collection Attributes).

void Clear()
Efface tous les éléments de la liste.

bool Done(ListItem selectedItem)
Si cette méthode est présente dans le script elle sera alors appelée quand l'utilisateur clique une soft key (un menu) qui a pour identifiant ID "Done". Cela peut s'avérer utile pour accéder à l'élément sélectionné afin de récupérer ses attributs, et ensuite utiliser cette information afin de réaliser d'autres actions comme celle d'enregistrer la sélection de l'utilisateur.

Copyright 2012 CordoWEB