IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

Comment ajouter plusieurs données dynamiques dans un item d'une listview


Sujet :

Composants graphiques Android

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Points : 52
    Points
    52
    Par défaut Comment ajouter plusieurs données dynamiques dans un item d'une listview
    Bonjour à tous,

    J'ai développé une listview qui instancie différent type de layout en fonction des type de données que j'envoie et je souhaiterai ensuite afficher dans un seul item de la listview plusieurs informations de façon dynamique.

    Je vous montre un screenshot:



    Comme vous pouvez voir, les produits acheté se répètent dans un seul item. je veux reproduire la même chose

  2. #2
    Membre éclairé
    Avatar de LeBzul
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 381
    Points : 832
    Points
    832
    Par défaut
    Salut,
    Je me trompe peut être, mais je dirais qu'il y a bien plusieurs cellules et pas qu'une seule; C'est juste une question de marge entre elle qui est réduite au minimum.
    "Quand la lune n'est pas là, la nuit mène une existence obscure"

  3. #3
    Membre régulier Avatar de Rappunzell
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Novembre 2007
    Messages : 93
    Points : 91
    Points
    91
    Par défaut
    Salut,

    Il faut que tu utilises un ListViewAdapter. Tu créés un layout représentant une ligne de ta ListView (dans ton exemple, un LinearLayout contenant une ImageView et deux TextView). Voici un exemple que j'utilise dans mon appli :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    public class UsersListViewAdapter extends BaseAdapter {
    	Context mContext;
    	ArrayList<ComplexUser> mComplexUsersList;
    	LayoutInflater inflater;
     
    	public UsersListViewAdapter(Context context, ArrayList<ComplexUser> objects) {
    		this.mContext = context;
    		this.mComplexUsersList = objects;
    		this.inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    	}
     
    	@Override
    	public int getCount() {		
    		return mComplexUsersList.size();
    	}
     
    	@Override
    	public Object getItem(int position) {
    		return mComplexUsersList.get(position);
    	}
     
    	@Override
    	public long getItemId(int position) {
    		return position;
    	}
     
    	public static class ViewHolder {
    		TextView tvNom;
    		TextView tvPrenom;
    		TextView tvIdentifiant;
    		TextView tvCode;
    	}
     
    	@Override
    	public View getView(int pos, View inView, ViewGroup parent) {
    		final ViewHolder holder;
     
            // Si la ligne n'éxiste pas, on créé la ligne 
            if (inView == null) {
               inView = this.inflater.inflate(R.layout.cursor_users_row, parent, false);
               holder = new ViewHolder();
               // On affecte les views
               holder.tvNom = (TextView) inView.findViewById(R.id.CursorUsersRow_TextView_Nom);
               holder.tvPrenom = (TextView) inView.findViewById(R.id.CursorUsersRow_TextView_Prenom);
               holder.tvIdentifiant = (TextView) inView.findViewById(R.id.CursorUsersRow_TextView_Identifiant);
               holder.tvCode = (TextView) inView.findViewById(R.id.CursorUsersRow_TextView_Code);
               inView.setTag(holder);
            }
            // Sinon on récupère la ligne qui est en mémoire
            else
            	holder = (ViewHolder) inView.getTag();
     
            // On récupère l'objet courant
            ComplexUser complexUser = this.mComplexUsersList.get(pos);
     
            // On met à jour nos views
            holder.tvNom.setText(complexUser.getNom());
            holder.tvPrenom.setText(complexUser.getPrenom());
            holder.tvIdentifiant.setText(complexUser.getIdentifiant());
            holder.tvCode.setText(complexUser.getCode());
     
            return (inView);
    	}
     
    	@Override
    	public boolean isEnabled(int position) {
    		return true;
    	}
    }
    Et dans l'Activité où tu manipules ta ListView :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    // On récupère tous les utilisateurs de la base de données
    utilisateurs = uDao.selectAll();		
    ArrayList<ComplexUser> listComplexUsers = cursorUsersToArrayList(utilisateurs);
     
    // On créé un Adapter
    adapter = new UsersListViewAdapter(this, listComplexUsers);
     
    liste_utilisateurs.setAdapter(adapter);
    Je pense que tu devrais réussir à te débrouiller avec ça

Discussions similaires

  1. Comment ajouter des données json dans un listView
    Par sarra7 dans le forum Composants graphiques
    Réponses: 2
    Dernier message: 15/04/2015, 03h38
  2. [Débutant] [VB-WPF] - Ajouter un controle dans un item d'une listview ?
    Par troxsa dans le forum VB.NET
    Réponses: 3
    Dernier message: 20/07/2012, 09h33
  3. Evènement clic bouton dans un item d'une ListView
    Par koukou11 dans le forum Composants graphiques
    Réponses: 11
    Dernier message: 12/05/2012, 15h21
  4. Réponses: 9
    Dernier message: 23/03/2010, 17h52
  5. Réponses: 2
    Dernier message: 04/06/2008, 01h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo