Bonjour à toutes et à tous,
Dans mon application de Nav, j'ai besoin d'un tableau de valeurs de types différents. J'ai donc créé une classe regroupant ces valeurs :
J’instancie et remplis mon tableau avec des données GPS :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public class PTS { public static String UTM_Z; public static double UTM_N; public static double UTM_E; public static double Alti; public static String Date; public static int NoIcon; }
et là, je m'attendais à un plantage magnifique. Et bien non, en utilisant un "Toast", je lisais bien des valeurs dans mon tableau.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 PTS Tbl [] = new PTS [NbPts]; // NbPts = nombre de points dans le tableau for (int i = 0; i < NbPts; i++) { Tbl[i].UTM_E = GPS.UTM_E; Tbl[i].UTM_N = GPS.UTM_N; Tbl[i].UTM_Z = GPS.UTM_Z; Tbl[i].Alti = Double.parseDouble(Str.substring(47, 52)); // Altitude }
Je m'attendais à un plantage car à chaque valeur du tableau, j'utilisais la classe "PTS" et non une instance nouvelle (pour chaque point du tableau) de cette classe. J'ai rajouté une instanciation pour chaque valeur du tableau ... ce qui n'a rien changé au résultat.
J'en ai déduit que l'instantiacion du tableau faisait en même temps NbPts instanciations de ma classe PTS. Vrai, Faux ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 PTS Tbl [] = new PTS [NbPts]; // NbPts = nombre de points dans le tableau for (int i = 0; i < NbPts; i++) { Tbl[i] = new PTS(); // instanciation de la classe pour chaque point Tbl[i].UTM_E = GPS.UTM_E; Tbl[i].UTM_N = GPS.UTM_N; Tbl[i].UTM_Z = GPS.UTM_Z; Tbl[i].Alti = Double.parseDouble(Str.substring(47, 52)); // Altitude }
Merci pour vos éclaircissements.
Pierre
Partager