Aller au contenu

Architecture - Listes - Comment feriez vous ?


Olivier

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

Lien vers le commentaire
Partager sur d’autres 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.

Modifié par Galize
Lien vers le commentaire
Partager sur d’autres 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)

Lien vers le commentaire
Partager sur d’autres 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

Lien vers le commentaire
Partager sur d’autres 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 !

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...