Jump to content
Olivier

Architecture - Listes - Comment feriez vous ?

Recommended Posts

Bonjour tout le monde,

Toujours impliqué dans mon premier dev sur Android, je me demande si j'ai fait les bons choix sur certains points. J'aimerai savoir comment vous feriez :

Problématique :

Données, dans une database de messages téléphoniques :

- nom de fichier audio

- statut (lu, non lu...)

- numéro de la personne qui a laissé le message

- date heure du message

- durée du message

Lors de l'affichage je veux afficher sur chaque ligne :

- une icone qui sert à lancer l'écoute

- le numéro de l'appelant (avec un style différent selon que le msg est écouté ou non)

- la date heure

- la durée

Lors de l'affichage, j'ai + de données à transmettre qu'à afficher :

- le statut sert à définir un style lors de l'affichage du numéro

- le nom de fichier est nécessaire pour l'écoute (l'icone)

Dans les ListView, d'après ce que je constate, on assigne une donnée à un widget dans chaque row. Comment passer + de données que de widgets ? (ou faire autrement)

Merci,

Olivier

Share this post


Link to post
Share on other sites

Tu embarques dans ta listView un modèle de données.

C'est à dire un objet avec tous les attributs que tu souhaites.

Au niveau visuel tu convertis les informations voulues en visuel.

Il y a une séparation totale entre l'affichage et les données, donc pas de problème.

Edited by Galize

Share this post


Link to post
Share on other sites

tout ceci gràace un à ListAdapter que tu auras réécrit.

par exemple ton adapter aura un add(MonObjet) avec MonObjet par exemple qui se crée comme ceci : new MonObjet (A,B,C)

et à l'affichage tu peux juste faire un setText sur un seul widget de A+B+C...

exemple dans taskiller les objets de l'adapter contiennent : nom de l'appli,nom du package, icône, type : service, appli, priorité)

et on affiche juste nom+icone avec nom de la couleur du type... mais pas le package (qui sers juste au clic pour killer)

Share this post


Link to post
Share on other sites

Ok merci ! je vois le truc. J'ai trouvé notament ceci qui l'illustre : http://developer.android.com/intl/fr/guide/samples/ApiDemos/src/com/example/android/apis/view/List4.html

Par contre dans l'exemple cité, ils implémentent un LinearLayout dans le code. De mon coté, j'ai un TableLayout (enfin une row) en XML.

Je ne vois pas comment faire pour l'exploiter dans ce cas.

Merci,

Olivier

Share this post


Link to post
Share on other sites

Il suffit de demander pour trouver...

Je pense que j'ai trouvé :

public LigneView(Context context, String title, String words)

{

super(context);

TableLayout ligne = (TableLayout) inflate(context, R.layout.messages_row, null);

addView(ligne);

}

Merci !

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.






×
×
  • Create New...