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

Android Discussion :

Instancier plusieurs objets avec une boucle for


Sujet :

Android

  1. #1
    Membre à l'essai
    Homme Profil pro
    Lyceen
    Inscrit en
    Novembre 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lyceen
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2012
    Messages : 40
    Points : 18
    Points
    18
    Par défaut Instancier plusieurs objets avec une boucle for
    Bonjour,

    J'aimerais instancier plusieurs d'objet d'une même classe à l'aide d'une boucle for (Classe catégorie en l’occurrence)

    J'aimerais faire quelques chose comme ça, sauf que cela ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    String T_alimentaire[] = {"alimgene","boucherie","boulangerie","cavistes","choco"};
    String T_alimentaire_description = {"Alimentation Générale","Boucheries - Charcuteries - Traiteurs","Boulangeries - Patisseries","Cavistes","Chocolateries - Confiseries - Glacier - Torréfaction - Thés"}
     
    for (int i =0; i<T_alimentaire.length; i++){
           Categorie T_alimentaire[i] = new Categorie(T_alimentaire_description[i],R.mipmap.ic_launcher);
    Au lieu de ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            Categorie alimgene = new Categorie("Alimentation Générale",R.mipmap.ic_launcher);
            Categorie boucherie = new Categorie("Boucheries - Charcuteries - Traiteurs",R.mipmap.ic_launcher);
            Categorie boulangerie = new Categorie("Boulangeries - Patisseries",R.mipmap.ic_launcher);
            Categorie cavistes = new Categorie("Cavistes",R.mipmap.ic_launcher);
            Categorie choco = new Categorie("Chocolateries - Confiseries - Glacier - Torréfaction - Thés",R.mipmap.ic_launcher);

    je vous mets la classe catégorie si besoin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public class Categorie {
        private String nom;
        private int idLogo;
        private ArrayList sousCats;
        // todo Color catégorie
        public Categorie(String nom,int idLogo){
            this.nom = nom;
            this.idLogo = idLogo;
            sousCats = new ArrayList();
    une idée ?

    Merci de votre aide.
    Bromy

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Quel intérêt à cela ?
    Le code de ta boucle est plus long et moins lisible que celui que tu veux remplacer...



    Mais bon si tu y tiens vraiment il faudrait stocker tes instances dans un tableau (ou une List/Map) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    String T_alimentaire_description = {"Alimentation Générale","Boucheries - Charcuteries - Traiteurs","Boulangeries - Patisseries","Cavistes","Chocolateries - Confiseries - Glacier - Torréfaction - Thés"}
    Categorie[] categories = new Categorie[T_alimentaire_description.length];
    for (int i =0; i<T_alimentaire.length; i++){
           categories[i] = new Categorie(T_alimentaire_description[i],R.mipmap.ic_launcher);
    }

    a++

  3. #3
    Membre à l'essai
    Homme Profil pro
    Lyceen
    Inscrit en
    Novembre 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lyceen
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2012
    Messages : 40
    Points : 18
    Points
    18
    Par défaut
    Parce que là c'est un exemple, mais j'ai beaucoup plus de catégorie que ça à ajouter, et c'est surtout que j'aimerai à un moment donner relier mon programme java avec une base de donnée, et pouvoir créer des catégories selon les données présentes dans ma base de donnée. (Après je m'avance un peu, je connais pas assez java pour savoir si c'est possible, et comment cela est possible)

    Avec la solution que tu me donnes, les objets n'ont pas le nom que je voudrais leur donner. Pas moyen de faire autrement pour récupérer les nom que je voudrais leur donner depuis un tableau ?

    (En gros, c'est pour faire une application sous android qui rassemblerait tous les commerces d'une ville et qui les trierai selon des catégories et sous catégories

    Par exemple

    Alimentaire
    -> Alimentaire générale
    -----> Super U
    -----> Intermarché
    -> Boulancherie
    ----> Boulancherie centre ville
    ----> Boulancherie 2

    Fleuriste
    ->
    ---->
    ---->

    etc etc ..)

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par bromy Voir le message
    (En gros, c'est pour faire une application sous android qui rassemblerait tous les commerces d'une ville et qui les trierai selon des catégories et sous catégories
    En gros tu veux juste associer un ID à chaque catégorie.

    Dans ce cas il faut simplement utiliser une Map :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Map<String,Categorie> categories = new HashMap<String,Categorie>();
    for (int i =0; i<T_alimentaire.length; i++){
    	String key = T_alimentaire[i];
    	Categorie value = new Categorie(T_alimentaire_description[i],R.mipmap.ic_launcher); 
    	categories.put(key, value);
    }
     
     
    // Et pour récupérer une valeur :
    Categorie c = categories.get("boucherie");

    a++

  5. #5
    Membre à l'essai
    Homme Profil pro
    Lyceen
    Inscrit en
    Novembre 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lyceen
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2012
    Messages : 40
    Points : 18
    Points
    18
    Par défaut
    Ok super je vais essayer merci.

Discussions similaires

  1. Balayer plusieurs variables avec une boucle for
    Par Grevious88 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 12/05/2016, 09h08
  2. Réponses: 2
    Dernier message: 01/05/2013, 22h40
  3. [POO] parcourir un objet json avec une boucle for in
    Par bucheron007 dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 19/01/2009, 12h55
  4. ActionScript 2 Manipuler plusieurs clips créés avec une boucle for
    Par adinx dans le forum ActionScript 1 & ActionScript 2
    Réponses: 7
    Dernier message: 09/04/2008, 15h01
  5. : remplir des zones de texte avec une boucle For
    Par Haro_GSD dans le forum Access
    Réponses: 3
    Dernier message: 20/09/2005, 21h23

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