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 :

Passer les paramètres d'une activité à une listeView


Sujet :

Android

  1. #21
    Nouveau membre du Club
    Inscrit en
    Mars 2011
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 91
    Points : 39
    Points
    39
    Par défaut
    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
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
     
    public class Accueil extends Activity {
     
    	private GridView grid_main;
    	private static Drawable mNoImage;
     
     
        private ArrayList<String> mesUrl;
     
     
        @Override    
        public void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            setContentView(R.layout.gridplace);
            mNoImage = this.getResources().getDrawable(R.drawable.icon);
     
     
     
            ArrayList<Type> types = ContainerType.getTypes();
            for (Type type : types) {
    			Log.e("feedPlayer",type.toString());
    		}
        	mesUrl = buildListImages();
            ListTypeAdapter lfa = new ListTypeAdapter(this, types,mesUrl);
            grid_main = (GridView)findViewById(R.id.GridView01);
            grid_main.setAdapter(lfa);
     
     
            grid_main.setOnItemClickListener(new OnItemClickListener() {
                public void onItemClick(AdapterView<?> a, View v, int position, long id) {
                 CallFunc(position);
             }
     
                     private void CallFunc(int position) {
                    	 Bundle b = getIntent().getExtras();
                 	    int index = b.getInt("id");
     
                         Intent intent = new Intent(Accueil.this , ListeResto.class);
                         intent.putExtra("position", index);
     
                         startActivity(intent);
     
     
                     }
            });
     
        }
     
            private ArrayList<String> buildListImages() {
    			int nbTotalImage = 21;
    			ArrayList<String> listFic = new ArrayList<String>();
    			for(int i = 1; i <= nbTotalImage; i++) {
    				listFic.add(new String(SERVER_IM + "/" + i + ".png"));
    			}
     
    			return listFic;
    		}
    		public static void setImage(ImageView aView, String url) {
    			try {
    				 URL aURL = new URL(url);
     
    				URLConnection conn = aURL.openConnection();
    				conn.connect();
    				InputStream is = conn.getInputStream();
     
    				// Bufferisation pour le téléchargement 
    				BufferedInputStream bis = new BufferedInputStream(is, 8192);
     
    				// Création de l'image depuis le flux des données entrant
    				Bitmap bm = BitmapFactory.decodeStream(bis);
    				bis.close();
    				is.close();
     
    				// Fixe l'image sur le composant ImageView
    				aView.setImageBitmap(bm);
     
    			} catch (IOException e) {
    				aView.setImageDrawable(mNoImage);
    				Log.e("DVP Gallery", "Erreur téléchargement image URL : " );
    				e.printStackTrace();
    			} 
    		}
     
     
        }

    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
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    public class ListeResto extends Activity  {
     
        ListView list;
        ListRestoAdapter adapter;
    	private static Drawable mNoImage;
     
     
        private ArrayList<String> mesUrl;
     
     
    	    /** Called when the activity is first created. */
    	    @Override
    	    public void onCreate(Bundle savedInstanceState) {
    	        super.onCreate(savedInstanceState);
    	        requestWindowFeature(Window.FEATURE_NO_TITLE);
    	        setContentView(R.layout.listeresto);
     
    	        mNoImage = this.getResources().getDrawable(R.drawable.icon);
     
    	        Bundle b = getIntent().getExtras();
    	        final int index = b.getInt("position");
    	        ArrayList<Place> places = ContainerPlace.getPlaces();
     
    	    	mesUrl = buildListImages();
     
     
    			ListRestoAdapter lfa = new ListRestoAdapter(this, places,mesUrl);
    	        ListView maListViewPerso = (ListView) findViewById(R.id.list);
    	        maListViewPerso.setAdapter(lfa);
    	        maListViewPerso.setDividerHeight(2); 
     
     
     
    	    maListViewPerso.setOnItemClickListener(new OnItemClickListener() {
                public void onItemClick(AdapterView<?> a, View v, int position, long id) {
                 CallFunc(position);
             }
     
                     private void CallFunc(int position) {
     
     
                         Intent intent = new Intent(ListeResto.this , PlaceInfo.class);
                         intent.putExtra("position",index);
                         startActivity(intent);
     
     
                     }
            });
    }
     
     
    		private ArrayList<String> buildListImages() {
    			int nbTotalImage = 21;
    			ArrayList<String> listFic = new ArrayList<String>();
    			for(int i = 1; i <= nbTotalImage; i++) {
    				listFic.add(new String(SERVER_IM + "/" + i + ".png"));
    			}
     
    			return listFic;
    		}
    		public static void setImage(ImageView aView, String url) {
    			try {
    				 URL aURL = new URL(url);
     
    				URLConnection conn = aURL.openConnection();
    				conn.connect();
    				InputStream is = conn.getInputStream();
     
    				// Bufferisation pour le téléchargement 
    				BufferedInputStream bis = new BufferedInputStream(is, 8192);
     
    				// Création de l'image depuis le flux des données entrant
    				Bitmap bm = BitmapFactory.decodeStream(bis);
    				bis.close();
    				is.close();
     
    				// Fixe l'image sur le composant ImageView
    				aView.setImageBitmap(bm);
     
    			} catch (IOException e) {
    				aView.setImageDrawable(mNoImage);
    				Log.e("DVP Gallery", "Erreur téléchargement image URL : " );
    				e.printStackTrace();
    			} 
    		}
    	}

  2. #22
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    C'est un peu compliqué de comprendre tout ce qu'il se passe, juste en lisant du code comme ça.

    Tu as dis que tu affichais une première ListView, qu'il l'y a t-il dans cette ListView ?
    T'as dis aussi que tu souhaiterais que lors du click sur un item de la ListView une nouvelle activité se lance et qu'elle affiche une nouvelle lListView que doit contenir cette ListView ?
    Keith Flint 1969 - 2019

  3. #23
    Nouveau membre du Club
    Inscrit en
    Mars 2011
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 91
    Points : 39
    Points
    39
    Par défaut
    La première activité est un grid view que je veux lorsque je clique sur item une list view s'affiche(c'est la deuxième classe)en fonction de la valeur de l'item

  4. #24
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Ok alors il y a une GridView et quand t'appuies sur un de ces items tu veux une ListView.

    Donc je reformule ce que j'essaie de dire depuis plusieurs posts :
    Explique ce que tu as et ce que tu veux.

    Fais un exemple concret de ce qu'il y a dans la gridview et ce que tu veux dans la listview.

    Parce que là je peux pas t'aider.
    Pour l'instant t'as déjà fais une la gridview avec un listener qui lance une autre activity ?

    Est-ce que dans la gridview t'as un truc du genre : liste d’hôtel n°1 et quand tu click tu voudrais voir la liste des hôtels de la liste n°1 ?

    Comment sont rangé des hôtels ?
    Il existe des catégories ou quelque chose comme ça ?
    Keith Flint 1969 - 2019

  5. #25
    Nouveau membre du Club
    Inscrit en
    Mars 2011
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 91
    Points : 39
    Points
    39
    Par défaut
    GRid view contient la liste des places(hôtel,restaurant...),je veux lorsque je clique sur restaurant l'ensemble des restaurants s'affiche dans une list view
    le problème que j'ai une liste des places dans la base qui se différencie en fonction de l'attribut type.
    Donc le problème est dans le filtrage.

  6. #26
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Ok merci.
    Bon alors si j'ai enfin compris dans la base t'as toutes les entrées bars, restaurants, hôtels, etc et tu veux par exemple récupérer tout les restaurants.

    C'est un truc basique pourquoi n'y arrive tu pas ?
    Mais déjà comment tu fais actuellement ?

    T'as une classe restaurant, une classe hôtel ?
    Ou t'as une classe plus générique avec un attribut qui donne le type (hôtel, restaurant) ?

    Parce que tu peux faire une classe Etablissement.
    Après tu fais une classe restaurant qu'extends Etablissement.
    Une classe Hotel qu'extends Etablissement, etc...

    Quand tu va créer tout les instances d'établissement à partir de ta base, t’utilise à chaque fois la bonne classe.

    Après tu peux avoir une liste d'établissement et des méthodes qui trient.

    C'est une solution mais y'en a d'autre.

    Je voudrais savoir comment tes établissements sont dans la base et comment tu les passes en instance de classe.
    Keith Flint 1969 - 2019

  7. #27
    Nouveau membre du Club
    Inscrit en
    Mars 2011
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 91
    Points : 39
    Points
    39
    Par défaut
    Non, j'ai une classe générique avec l'attribut type(resto,hotel..)

  8. #28
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Bon c'est un peu moins fun et si tu dois montrer ton diagramme de classe UML ça aura un peu moins la classe, cela dit, ça ce fait très bien.

    Tu peut par exemple faire une méthode getHotel(), qui va recevoir la liste complètes des établissements et qui va retourner tout les établissements qui sont des hôtels.

    Le trie est simple, tu parcours tout les établissements et quand c'est un hôtel tu le met dans une nouvelle liste à la fin tu retourne la nouvelle liste.

    Tu récupères bien tout les établissements dans une liste au départ ?
    Keith Flint 1969 - 2019

  9. #29
    Nouveau membre du Club
    Inscrit en
    Mars 2011
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 91
    Points : 39
    Points
    39
    Par défaut
    oui je récupère tous les établissement dans un GridView et en fonction de clique je trie la liste

  10. #30
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Ah en fait j'ai pas compris, je pensais que la GridView donnait les types d'établissements :
    • Hôtel
    • Bar
    • Café
    • Restaurant


    Et que par la suite t'affichais les établissements en question.

    Mais bon après ça tu fais bien comme tu veux.
    Moi je propose juste des solutions pour trier.

    En fait j'ai pensé à peut être meilleurs solution.
    Dans ta table qui contient les établissements t'as un un champ qui dit le type.
    Ben au lieu d'avoir une méthode qui récupère tout, tu peux avoir une méthode qui récupère les entrées d'un seul type, par exemple tout les bars.

    Je ne sais pas qu'elle méthode est la plus rapide, il faudrait tester.

    T'as pas des diagrammes à montrer ou quelque chose ?
    T'as quoi comme champs dans ta table ?
    T'as quoi comme attribut dans ta classe ?
    Keith Flint 1969 - 2019

  11. #31
    Nouveau membre du Club
    Inscrit en
    Mars 2011
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 91
    Points : 39
    Points
    39
    Par défaut
    J'implémente cette méthode pour la récupération des places en fonction de type qu'on a passé en parametre
    mais force close
    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
     
    		public ArrayList<Place> gettypeplaces() {
    			  ArrayList<Place> places = ContainerPlace.getPlaces();
     
    			if (typeplace == null) {
    				typeplace = new ArrayList<Place>();
    				  for ( int i=0;i<places.size();i++)
    				  {
    					  Bundle b = getIntent().getExtras();
    					     final int index = b.getInt("position");
    					Place e=null;
    					  if (i==index)
    		        	 e=ContainerPlace.getPlaces().get(i);
     
     
    			        typeplace.add(new Place());
     
    			}
     
    			}
    			return typeplace;
    	}

  12. #32
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    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
     
    public ArrayList<Place> gettypeplaces() 
    {
         ArrayList<Place> places = ContainerPlace.getPlaces();
     
         if (typeplace == null) 
         {
              typeplace = new ArrayList<Place>();
              for ( int i=0;i<places.size();i++)
              {
                   Bundle b = getIntent().getExtras();
                   final int index = b.getInt("position");
                   Place e=null;
                   if (i==index)
                   {
                        e=ContainerPlace.getPlaces().get(i);
                   }
     
                   typeplace.add(new Place());		
              }		
         }
         return typeplace;
    }
    Je comprend rien à ce qu'il se passe, tu fais une boucle sensé parcourir places mais tu fais ne le fais pas.

    Et qu'est-ce que vient faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Bundle b = getIntent().getExtras();
    final int index = b.getInt("position");
    Là au milieu ?

    Bon par contre ContainerPlace.getPlaces() ça te renvoit bien une ArrayList de Place ?
    Si c'est le cas, c'est déjà bien.
    Keith Flint 1969 - 2019

  13. #33
    Nouveau membre du Club
    Inscrit en
    Mars 2011
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 91
    Points : 39
    Points
    39
    Par défaut
    je vient de parcourir la liste des places pour ajouter à la nouvelle arraylist typeplace les places qui ont un id=index

  14. #34
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Ok j'ai un peu mieux compris.
    En fait ton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ArrayList<Place> places = ContainerPlace.getPlaces();
    Ne sert à rien vu que tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Place e =ContainerPlace.getPlaces().get(i);
    Tu devrais faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Place e = places.get(i);
    Tu ne devrais pas récupérer l'index dans une boucle essaie de sortir ça du for :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Bundle b = getIntent().getExtras();
    final int index = b.getInt("position");
    Faudrait demander à des gars plus caler que moi, mais peut être que faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public ArrayList<Place> gettypeplaces(int index)
    Ce serait plus pratique.
    Keith Flint 1969 - 2019

  15. #35
    Nouveau membre du Club
    Inscrit en
    Mars 2011
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 91
    Points : 39
    Points
    39
    Par défaut
    merci pour ton aide je veux essayer

  16. #36
    Nouveau membre du Club
    Inscrit en
    Mars 2011
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 91
    Points : 39
    Points
    39
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    05-18 12:50:17.045: ERROR/AndroidRuntime(723): java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
    c'est l'erreur que s"affiche

  17. #37
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    C'est pas évident de comprendre ce que t'essaies de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
              for ( int i=0;i<places.size();i++)
              {
                   Bundle b = getIntent().getExtras();
                   final int index = b.getInt("position");
                   Place e=null;
                   if (i==index)
                   {
                        e=ContainerPlace.getPlaces().get(i);
                   }
     
                   typeplace.add(new Place());		
              }
    T’incrémente un int i de 0 à la taille d'un ArrayList.
    Tu créer une Place e, et quand i est égal à index tu met une Place dans e.
    Tu ne fais rien de e.
    Et tu ne fais qu'ajouter dans une ArrayList new Place().

    Ton code simplifié c'est ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
              for ( int i=0;i<places.size();i++)
              {		
                   typeplace.add(new Place());		
              }
    Faire une ArrayList d'instance vide ça sert à rien.
    Et ça doit même être susceptible de faire planter l'application dans certains cas.
    Keith Flint 1969 - 2019

  18. #38
    Nouveau membre du Club
    Inscrit en
    Mars 2011
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 91
    Points : 39
    Points
    39
    Par défaut
    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
    public ArrayList<Place> gettypeplaces(int index) {
    			  ArrayList<Place> places = ContainerPlace.getPlaces();
     
    			if (typeplace == null) {
    				typeplace = new ArrayList<Place>();
    				  for ( int i=0;i<places.size();i++)
    				  {
     
    					Place e = null;
    					if (i==index)
    		        	 e = places.get(i);
     
     
    			        typeplace.add(e);
     
    			}
     
    			}
    			return typeplace;
    	}

    normalement cette methode retourne une arraylist de l'ensemble des places qui ont un id=index

    ensuite je fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      Bundle b = getIntent().getExtras();
    	        final int index = b.getInt("position");
     
     
     
    			ListRestoAdapter lfa = new ListRestoAdapter(this, gettypeplaces(index));
    pour construire la list view


    mais le meme probleme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    05-18 13:00:27.945: ERROR/AndroidRuntime(765): java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0

  19. #39
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Regarde ton code de plus près :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    for ( int i=0;i<places.size();i++)
    {					
         Place e = null;
         if (i==index)
         {
              e = places.get(i);
         }		
     
         typeplace.add(e);			
    }
    Déjà comme je l'ai dis avant tu ne regardes pas l'id mais i.
    Deuxièmement en gros tu fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for ( int i=0;i<places.size();i++)
    {							      
         typeplace.add(null);			
    }
    T'essaierais de voir un System.out.println de typeplace.size() il va être égal à places.size().
    Ton erreur est du au fait que t'envoies du vide à ton Adapter.
    Keith Flint 1969 - 2019

  20. #40
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Je recentre si tu veux récupérer la place choisie dans l'activity précédente alors ton code dois ressembler à cela :

    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
    Bundle b = getIntent().getExtras();
    if (b != null) {
        // on récupre la position selectionné
        int position = b.getInt("position",0);
        // on récupère la place correspond à la sélection
        Place place = GetPlace(position);
       // on initialise le tableau
        if (typeplace == null)
            typeplace = new ArrayList<Place>();
       // on ajoute la place
       typeplace.add(place);
    }
    // on charge l'adapter de la liste si il n'est pas null
     
     
     
    // permet de récupérer la place sélectionne
    public  Place GetPlace( int position) 
    {
         Place e = null;
         ArrayList<Place> places = ContainerPlace.getPlaces();
         if (places != null && places.size() > position) {
               e = places.get(position);
         } 
         return e;
    }
    Maintenant ce que j'ai du mal à comprendre c'est pourquoi tu veux faire une liste alors que tu ne sais que tu auras qu'un seul élément.

    Tu es sûr que tu veux filtrer les places par leur position ?

    Car si tu veux filtrer les places par leur id alors ton code devrait ressembler à cela

    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
    Bundle b = getIntent().getExtras();
    if (b != null) {
        // on récupre la position selectionné
        int id = b.getInt("position",0);
        // on récupère la place correspond à la sélection
        typeplace= GetPlaces(id);
    }
    // on charge l'adapter de la liste si il n'est pas null
     
     
     
    // permet de récupérer la place sélectionne
    public  ArrayList<Place> GetPlaces( int type) 
    {
       // on initialise le tableau
       ArrayList<Place> temp = null;
     
        ArrayList<Place> places = ContainerPlace.getPlaces();
        if (places != null) {
               for (int i =0; i < places.size() ; i++) {
                   Place e = places.get(i);
                   if ( e != null && e.GetType() == type) {
                         if (temp == null)
                                temp = new ArrayList<Place>();
                          temp.add(e);
                   }
              }
         } 
         return temp;
    }
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

Discussions similaires

  1. [Débutant] Passer les Paramètres à une requette "Select into "
    Par sidisadmir dans le forum VB.NET
    Réponses: 1
    Dernier message: 19/10/2013, 09h44
  2. [AC-2003] passer Les Paramètres à une requette.
    Par sidisadmir dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 19/10/2013, 07h35
  3. passer les paramètres à une fonction javascript
    Par phenix1988 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 01/01/2012, 23h19
  4. Réponses: 1
    Dernier message: 01/12/2009, 09h48
  5. Réponses: 1
    Dernier message: 18/10/2005, 16h31

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