je n'arrive à extraire un élément d'un ArrayList j'obtiens toujours le dernier élément
Bonjour
j'ai créé une classe Donne :
Code:
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
|
public class Donne {
//proprietes
private static Integer numeroDonne;
private static String donneur;
private static String vulnerable;
public Donne(Integer numeroDonne, String donneur, String vulnerable) {
this.numeroDonne = numeroDonne;
this.donneur = donneur;
this.vulnerable = vulnerable;
}
public String getVulnerable() {
return vulnerable;
}
public void setVulnerable(String vulnerable) {
Donne.vulnerable = vulnerable;
}
public String getDonneur() {
return donneur;
}
public void setDonneur(String donneur) {
Donne.donneur = donneur;
}
public Integer getNumeroDonne() {
return numeroDonne;
}
public static void setNumeroDonne(Integer numeroDonne) {
Donne.numeroDonne = numeroDonne;
}
} |
je crée une ArrayList de plusieurs donnes dans une classe Mouvement:
Code:
1 2 3 4 5 6 7 8
|
public static ArrayList<Donne> lesDonnesMouvement;
public static ArrayList<Donne> getLesDonnesMouvement() {
return lesDonnesMouvement;
}
public static void setLesDonnesMouvement(ArrayList<Donne> lesDonnesMouvement) {
Mouvement.lesDonnesMouvement = lesDonnesMouvement;
} |
Dans la classe Controle j'extrait les donnes d'un JsonArray :
Code:
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
|
public void afficheTournoi(String strMessage1, String strMessage2){
try {
//transforme les données de message1 en un tableau : leMouvement
JSONArray leMouvementJsonArray = new JSONArray(strMessage1);
Log.d("controle.affiTourn", "le mvnt_numero "+leMouvementJsonArray.toString());
for (int k = 0; k < leMouvementJsonArray.length(); k++) {
JSONObject leMouvement = new JSONObject(leMouvementJsonArray.get(k).toString());
mvnt_numero = leMouvement.getInt("mvnt_numero");
Mouvement.setMvnt_numero(mvnt_numero);
table_numero = leMouvement.getInt("table_numero");
Mouvement.setTable_numero(table_numero);
equipeNS = leMouvement.getInt("equipe_NS");
Mouvement.setEquipeNS(equipeNS);
equipeEO = leMouvement.getInt("equipe_EO");
Mouvement.setEquipeEO(equipeEO);
nomJ1 = leMouvement.getString("nomJ1");
Tournoi.setNomJ1(nomJ1);
prenomJ1 = leMouvement.getString("prenomJ1");
Tournoi.setPrenomJ1(prenomJ1);
nomJ2 = leMouvement.getString("nomJ2");
Tournoi.setNomJ2(nomJ2);
prenomJ2 = leMouvement.getString("prenomJ2");
Tournoi.setPrenomJ2(prenomJ2);
}
} catch (JSONException e) {
Log.d("controle", "***************" + "conversion JSON impossible " + e.toString());
// e.printStackTrace();
}
try {
//transforme les données de message2 en un tableau : leMouvement
JSONArray lesDonnesMouvementJsonArray = new JSONArray(strMessage2);
Log.d("controle.affiTourn", "les donnes du Mouvemengt "+ lesDonnesMouvementJsonArray.toString());
for (int k = 0; k < lesDonnesMouvementJsonArray.length(); k++) {
JSONObject donneMouvementOject = new JSONObject(lesDonnesMouvementJsonArray.get(k).toString());
numeroDonne = donneMouvementOject.getInt("numero_donne");
donneur = donneMouvementOject.getString("donneur");
vulnerable = donneMouvementOject.getString("vulnerable");
//crée une donne du mouvement
Donne donneMouvement = new Donne(numeroDonne, donneur, vulnerable);
Log.d("control.affich","une donne du mouvement index : "+k+" ** "+donneMouvement+" ***numeroDonne : "+numeroDonne);
Integer numero3Donne = donneMouvement.getNumeroDonne();
Log.d("control.affich","une donne du mouvement index : "+k+" ** "+donneMouvement+" ***numero3Donne : "+numero3Donne);
//ajoute les donnes à la liste des donnes du Mouvement
lesDonnesMouvement.add(donneMouvement);
Mouvement.setLesDonnesMouvement(lesDonnesMouvement);
Integer numero0Donne = lesDonnesMouvement.get(0).getNumeroDonne();
Log.d("control.affich","une donne du mouvement index : "+k+" ** "+donneMouvement+" **numero0Donne : "+numero0Donne);
Donne donne0 = lesDonnesMouvement.get(0);
Integer numero0 = donne0.getNumeroDonne();
Log.d("control.affich","une donne0 du mouvement index : "+0+" ** "+donne0+" **numero0 : "+numero0);
}
} catch (JSONException e) {
Log.d("controle", "***************" + "conversion JSON impossible " + e.toString());
// e.printStackTrace();
}
Log.d("control.affich", "mouvement.getdonne a jouer : "+Mouvement.getDonneAJouer());
if(Mouvement.getDonneAJouer()!=0){
Mouvement.setDonneAJouer(Mouvement.getDonneAJouer()+1); ;
}
Log.d("control.affich", "mouvement.getdonne a jouer : "+Mouvement.getDonneAJouer());
lesDonnesMouvement = Mouvement.getLesDonnesMouvement();
Log.d("control.affichetour","lesDonnesMouvements : "+lesDonnesMouvement.toString());
for (int k = 0; k < lesDonnesMouvement.size(); k++) {
Integer numero2Donne = lesDonnesMouvement.get(k).getNumeroDonne();
Log.d("control.affichetour", "numero2Donne : " + numero2Donne.toString());
Donne uneDonne = Mouvement.getUneDonneMouvement( k);
Integer numero5Donne = uneDonne.getNumeroDonne();
Log.d("control.affichetour", "numero5Donne : " + numero5Donne.toString());
}
Mouvement.setDonneAJouer(numeroDonne);
Intent intent = new Intent(contexte, MouvementActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
Log.d("controle.affiTourn", "le mvnt_numero => MouvementActivity");
contexte.startActivity(intent);
} |
Le problème je n'arrive pas à avoir le numéro de la première donne de l'arrayList "lesDonnesMouvement", une fois l'arraylist constitué, j'obtiens toujours le numéro de la dernière donne enregistrée :
Code:
1 2 3 4 5 6 7 8
| //rappel du code ci-dessus
for (int k = 0; k < lesDonnesMouvement.size(); k++) {
Integer numero2Donne = lesDonnesMouvement.get(k).getNumeroDonne();
Log.d("control.affichetour", "numero2Donne : " + numero2Donne.toString());
Donne uneDonne = Mouvement.getUneDonneMouvement( k);
Integer numero5Donne = uneDonne.getNumeroDonne();
Log.d("control.affichetour", "numero5Donne : " + numero5Donne.toString());
} |
alors que lors de la création les numéro de la donne sont correct :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| //rappel du code ci-dessus
for (int k = 0; k < lesDonnesMouvementJsonArray.length(); k++) {
JSONObject donneMouvementOject = new JSONObject(lesDonnesMouvementJsonArray.get(k).toString());
numeroDonne = donneMouvementOject.getInt("numero_donne");
donneur = donneMouvementOject.getString("donneur");
vulnerable = donneMouvementOject.getString("vulnerable");
//crée une donne du mouvement
Donne donneMouvement = new Donne(numeroDonne, donneur, vulnerable);
Log.d("control.affich","une donne du mouvement index : "+k+" ** "+donneMouvement+" ***numeroDonne : "+numeroDonne);
Integer numero3Donne = donneMouvement.getNumeroDonne();
Log.d("control.affich","une donne du mouvement index : "+k+" ** "+donneMouvement+" ***numero3Donne : "+numero3Donne);
//ajoute les donnes à la liste des donnes du Mouvement
lesDonnesMouvement.add(donneMouvement); |