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 un tableau en paramètre.


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 67
    Par défaut Passer un tableau en paramètre.
    Bonjour,

    Je bute (encore) sur un truc élémentaire ...

    Je désire passer un (des) tableau(x) en argument d'une méthode.
    Cela se présente comme cela :

    Dans la classe mainGpsNav02 :
    Le tableau est déclaré comme cela : String [] codeAirp ;

    Il est créé ainsi : codeAirp = new String[nbEnr+2];

    Il est rempli dans une boucle avec les valeur extraites d'une colonne d'un cursor.

    Il est passé en paramètre ainsi : m_MonTrace.envoiTab(strRep ,codeAirp , nbEnr+2);

    Dans la classe MonTrace :
    la méthode se présente ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public void envoiTab(String str , String [] tabCode , int cpt)
    	{
    		strRep = str ;
    		int i = 2;
                    codeAirp = new String[cpt];
    		while (i< (cpt +1))
    		{
                            codeAirp [i] = tabCode[i] ;			
    			i = i+1 ;
    		}
    	}
    Les choses fonctionnent normalement si je passe des paramètres qui ne sont pas des tableaux et ça plante avec un tableau.

    Ci-dessous quelques lignes du LogCat relatant le plantage :

    03-09 19:30:54.448: ERROR/AndroidRuntime(312): Uncaught handler: thread main exiting due to uncaught exception
    03-09 19:30:54.468: ERROR/AndroidRuntime(312): java.lang.ArrayIndexOutOfBoundsException
    03-09 19:30:54.468: ERROR/AndroidRuntime(312): at org.SimpleGpsNav02.riAndroid.MonTrace.envoiTab(MonTrace.java:93)


    Je sens que java.lang.ArrayIndexOutOfBoundsException n'est pas l'idéal. Est-ce un pb de déclaration ?
    J'aimerais savoir si mon code est correct ou s'il présente un défaut congénital.
    S'il est tel que cela devrait marcher je partirai à la recherche du grain de sable qui coince ...

    Merci d'avance.

  2. #2
    Membre expérimenté Avatar de DarkMolo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2006
    Messages : 207
    Par défaut
    Salut,

    Reprenons dès le départ,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    //Considérons que nbrEnr aut 3
    int nbrEnr = 3;
    //Tu crées un tableau de 5 élément (3 + 2)
    String [] codeAirp = new String[nbEnr + 2];
    //Appel à ta méthode
    m_MonTrace.envoiTab(strRep, codeAirp, nbEnr + 2);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public void envoiTab(String str , String [] tabCode , int cpt) {
      String strRep = str ;
      int i = 2;
      String [] codeAirp = new String[cpt];
     
      //Quand i sera égal à 5, on continue quand même dans la boucle car toujours inférieur à 6 (5 + 1), 
      while (i < (cpt +1)) {
        // tabCode est un tableau de 5 élèment, de 0 à 4, i vaut 5
        // tabCode[5] --> Lève une exception(ArrayIndexOutOfBoundsException)
        codeAirp [i] = tabCode[i];	
        i = i+1 ;
      }
    }
    Par la même occasion, t'es peut-être habitué au C, si tu passes un tableau en paramètre, tu n'as pas besoin de passer également sa longueur, puisque en java, tout est objet, ton objet tableau a un membre length qui te donne le nombre d'élément qu'il contient.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 67
    Par défaut
    Bon sang, mais c'est bien sûr !!!!

    Je déclare un tableau de cpt éléments, donc l'indice maxi est (cpt-1) !!!!
    Elémentaire mon cher Watson !

    Ya des jours, ma pôve dame ...

    Merci beaucoup DarkMolo

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. passer un tableau en paramètre du JSP à JS
    Par JauB dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 17/03/2008, 18h53
  2. Réponses: 2
    Dernier message: 10/03/2008, 18h28
  3. Passer un tableau en paramètre à une JSP?
    Par magicwill dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/07/2007, 10h22
  4. Réponses: 2
    Dernier message: 03/12/2006, 12h37
  5. Réponses: 1
    Dernier message: 23/05/2006, 14h36

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