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

Composants graphiques Android Discussion :

notifyDataSetChanged - update listview


Sujet :

Composants graphiques Android

  1. #1
    Membre du Club Avatar de kader15
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2016
    Messages : 65
    Points : 43
    Points
    43
    Par défaut notifyDataSetChanged - update listview
    Bonjour à tous,

    Voilà j'ai une class "Locom" qui comporte un numéro d'engin, le nom de la visite et l'etat.

    Le numéro d'engin et la visite sont des données directement importées d'un fichier excel que j'affiche dans une listview. En ce qui concerne l'état j'aimerai le changer en fonction du choix de l'utilisateur. Je m'explique:

    'Engin' 'Visite' 'Etat'

    L'utilisateur clique sur une ligne et a le choix entre 'En cours de réalisation' ou 'Terminée', suivant son choix lorsque je reviens à ma listview je dois voir afficher, par exemple:

    'Engin' 'Visite' 'En cours de réalisation'

    Je n'arrive pas à mettre à jour ma listview, si quelqu'un peut m'aider, please.

    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
                                lv = (ListView)findViewById(R.id.display_listview);
                                tv = (TextView)findViewById(R.id.tv_etat);
     
                                ArrayList<Locom> myList = new ArrayList<Locom>();
                                LocomAdpater dataAdapter = new LocomAdpater(HMoment.this, myList);
                                lv.setAdapter(dataAdapter);
     
                                String name = "aaa";
     
                                tv.setText(name);
     
                                dataAdapter.notifyDataSetChanged();
    Cordialement,


    Partager notre connaissance, c'est le début d'un monde en Paix.

    "L'ignorance mène à la peur, la peur mène à la haine et la haine conduit à la violence. Voilà l'équation." Averroès

    Ball Is Life !

  2. #2
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Parce que les changements doivent être fait sur les données de l'ArrayList (c-a-d les objets de type Locom), et pas sur les éléments à l'écran. Ça c'est le boulot de notifySetDataChanged() qui se débrouille ensuite.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  3. #3
    Membre du Club Avatar de kader15
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2016
    Messages : 65
    Points : 43
    Points
    43
    Par défaut
    Salut Hephaistos007 merci pour ta réponse,

    J'arrive a ajouter une nouvelle ligne mais je n'arrive pas à en modifier une, j'ai essayer avec set mais je n'arrive pas à obtenir la position, j'obtiens une erreur voici mon code :

    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
    ArrayList<Locom> myList = new ArrayList<Locom>();
                                Locom locom = new Locom(engin,visite,motif);
     
                                LocomAdpater dataAdapter = new LocomAdpater(HMoment.this, myList);
     
                                ListView lv = (ListView)findViewById(R.id.display_listview);
                                int position = lv.getSelectedItemPosition();
     
                                myList.clear();
                                myList.set(position,locom);
                                dataAdapter.notifyDataSetChanged();
     
                                Intent returnIntent = new Intent();
                                returnIntent.putParcelableArrayListExtra("ETATRESULT",myList);
                                setResult(Activity.RESULT_OK,returnIntent);

    Stack trace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    09-21 20:53:44.340 15279-15279/com.mycoprod.akhetib.mycoprod E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                   java.lang.NullPointerException
                                                                                       at com.mycoprod.akhetib.mycoprod.HMoment$26.onClick(HMoment.java:962)
                                                                                       at android.view.View.performClick(View.java:4475)
                                                                                       at android.view.View$PerformClick.run(View.java:18786)
                                                                                       at android.os.Handler.handleCallback(Handler.java:730)
                                                                                       at android.os.Handler.dispatchMessage(Handler.java:92)
                                                                                       at android.os.Looper.loop(Looper.java:176)
                                                                                       at android.app.ActivityThread.main(ActivityThread.java:5419)
                                                                                       at java.lang.reflect.Method.invokeNative(Native Method)
                                                                                       at java.lang.reflect.Method.invoke(Method.java:525)
                                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
                                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
                                                                                       at dalvik.system.NativeStart.main(Native Method)
    Cordialement,


    Partager notre connaissance, c'est le début d'un monde en Paix.

    "L'ignorance mène à la peur, la peur mène à la haine et la haine conduit à la violence. Voilà l'équation." Averroès

    Ball Is Life !

  4. #4
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Je ne sais pas pourquoi tu montres ce bout de code en particulier alors que tu as une NullPointerException dans la méthode onClick(). Montres tout.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  5. #5
    Membre du Club Avatar de kader15
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2016
    Messages : 65
    Points : 43
    Points
    43
    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
    iv_valider.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    String enginForm = engin;
                    String subject = "MyCoProd en direct !";
                    String signatureMail = "MyCoProd,\n" +
                            "NB : Ce message vous est adressé automatiquement. Merci de ne pas y répondre.\n";
     
                    if(cb_enAvance.isChecked()) {
                        String statut = "En avance";
                        String visiteForm = "EN AVANCE : " + visite;
     
                        if (choix1.isChecked()) {
                            String cause = "Engin priorisé" + "\n" + et_ra_ec.getText().toString() + et_motifInconnu.getText().toString();
                            String message = "Attention le train : " + enginForm + "\n\n" +
                                    "Statut  : " + statut + "\n\n" +
                                    "Opération de maintenance : " + visite + "\n\n" +
                                    "N'a pas pu être traité pour la cause suivante : \n" + cause + "\n\n\n" +
                                    signatureMail;
                            if (masteris.isChecked()) {
                                String motif = "MASTERIS";
                                Envoie_Mail(subject, message);
                                excelModifier(titleFile, enginForm, visiteForm, cause, motif);
     
     
     
                                ArrayList<Locom> myList = new ArrayList<Locom>();
                                Locom locom = new Locom(engin,visite,motif);
     
                                LocomAdpater dataAdapter = new LocomAdpater(HMoment.this, myList);
     
                                ListView lv = (ListView)findViewById(R.id.display_listview);
                                int position = lv.getSelectedItemPosition();
     
                                myList.clear();
                                myList.set(position,locom);
                                dataAdapter.notifyDataSetChanged();
     
                                Intent returnIntent = new Intent();
                                returnIntent.putParcelableArrayListExtra("ETATRESULT",myList);
                                setResult(Activity.RESULT_OK,returnIntent);

    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
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    package com.mycoprod.akhetib.mycoprod;
     
    import android.app.Activity;
    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.os.Bundle;
    import android.view.Gravity;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.AdapterView;
    import android.widget.ListView;
    import android.widget.SearchView;
    import android.widget.TextView;
    import android.widget.Toast;
     
    import java.util.ArrayList;
     
    public class DisplayMyCoProd extends Activity {
     
        public static final String POS_EXCEL = "posExcel";
        public static final String RETOUR = "retourArriere";
     
        static final int ETATRESULT = 1;  // The request code
     
     
        static int ligneMasteris = 16, ligneSLE = 16,ligneSLT = 16, lignePACA = 16, ligneThionville = 38, ligneINFRA = 38;
        static int ligneAppros = 38,lignePlanification = 38,ligneMethodes = 60,ligneCopro = 60,ligneMOD = 60,ligneInstallationsOutillages = 60,ligneRAEC = 82,ligneMotifInconnu = 82;
        static int cptRdvOK = 0;
     
        TextView txtv;
        String pathFile;
     
        public ArrayList<Locom> myList;
     
        LocomAdpater dataAdapter;
        ListView listView;
        SearchView sv;
     
        static boolean i = true;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.display_my_co_prod);
     
            Intent intent = getIntent();
            pathFile = intent.getStringExtra("EXTRA_pathFile");
     
            txtv = (TextView) findViewById(R.id.textView);
            txtv.setText(pathFile);
     
            listView = (ListView) findViewById(R.id.display_listview);
            sv = (SearchView) findViewById(R.id.searchView);
     
            myList = new ArrayList<Locom>();
            dataAdapter = new LocomAdpater(this, myList);
     
            listView.setAdapter(dataAdapter);
     
            listView.setOnItemClickListener(new ItemListView());
     
     
            DownLoadExcel dlExcel = new DownLoadExcel(DisplayMyCoProd.this, pathFile);
            dlExcel.execute();
     
            sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
                @Override
                public boolean onQueryTextSubmit(String text) {
                    return false;
                }
     
                @Override
                public boolean onQueryTextChange(String query) {
                    dataAdapter.getFilter().filter(query);
                    return false;
                }
            });
        }
     
        public void populate(ArrayList<Locom> locom) {
            //this.dataAdapter.clear();
            this.dataAdapter.addAll(locom);
            this.dataAdapter.notifyDataSetChanged();
        }
     
     
        private class ItemListView implements AdapterView.OnItemClickListener {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
     
                ViewGroup vg = (ViewGroup) view;
                TextView tv_e = (TextView) vg.findViewById(R.id.tv_engin);
                TextView tv_v = (TextView) vg.findViewById(R.id.tv_visite);
     
                String engin = tv_e.getText().toString();
                String visite = tv_v.getText().toString();
     
                if (engin.equals("") || visite.equals("")) {
                    //DO NOTHING
                    Toast.makeText(DisplayMyCoProd.this, "Aucun élément sélectionné !", Toast.LENGTH_SHORT).show();
     
                } else {
                    Toast toast = Toast.makeText(DisplayMyCoProd.this, engin + " : " + visite, Toast.LENGTH_SHORT);
                    toast.setGravity(Gravity.TOP | Gravity.LEFT, 0, 0);
                    toast.show();
     
     
     
                    Intent ChoixDMCPActivity = new Intent(DisplayMyCoProd.this, HMoment.class);
                    ChoixDMCPActivity.putExtra("EXTRA_PATHFILE", pathFile);
                    ChoixDMCPActivity.putExtra("EXTRA_TV_E", engin);
                    ChoixDMCPActivity.putExtra("EXTRA_TV_V", visite);
                    ChoixDMCPActivity.putExtra("POSITION", position);
                    Toast.makeText(DisplayMyCoProd.this, "position = "+position, Toast.LENGTH_SHORT).show();
                    Toast.makeText(DisplayMyCoProd.this, "id="+id, Toast.LENGTH_SHORT).show();
                    startActivityForResult(ChoixDMCPActivity, ETATRESULT);
     
                }
            }
        }
     
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            if (requestCode == ETATRESULT) {
                if (resultCode == Activity.RESULT_OK) {
     
                    Bundle bundle = data.getExtras();
                    ArrayList<Locom> myListComReturned = bundle.getParcelableArrayList("ETATRESULT");
                    populate(myListComReturned);
     
                    System.out.println("ArrayList RESULT OK");
                } else if (resultCode == 0) {
                    System.out.println("ArrrayList RESULT CANCELLED");
                }
            }
        }
     
    }
    Voilà, c'était parceque le fichier est assez volumineux ^^
    Cordialement,


    Partager notre connaissance, c'est le début d'un monde en Paix.

    "L'ignorance mène à la peur, la peur mène à la haine et la haine conduit à la violence. Voilà l'équation." Averroès

    Ball Is Life !

  6. #6
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    Bonjour,

    Ce que tu n'arrives pas à faire c'est modifier l'élément sélectionné dans la listView?

    Christian Djo
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  7. #7
    Membre du Club Avatar de kader15
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2016
    Messages : 65
    Points : 43
    Points
    43
    Par défaut
    oui c'est exactement ça :/
    Cordialement,


    Partager notre connaissance, c'est le début d'un monde en Paix.

    "L'ignorance mène à la peur, la peur mène à la haine et la haine conduit à la violence. Voilà l'équation." Averroès

    Ball Is Life !

  8. #8
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    Citation Envoyé par kader15 Voir le message
    oui c'est exactement ça :/
    Dans ce cas, je te propose ceci :

    - Ajoute un id dans la classe Locom qui sera automatiquement incrémenté quand tu ajoutes un nouvel objet Locom.
    - Quand tu sélectionnes une ligne dans ta listView, récupère l'objet à la position sélectionnée, modifie les attributs concernés.
    - Fais une recherche de l'objet Locom modifié dans la liste qui est passée à l'adaptateur en comparant l'id de cet objet modifié aux id de tous les objets dans la liste jusqu'à trouver un objet dont l'id match. Tu supprimes cet objet de la liste puis tu ajoutes le nouveau (ayant des attributs modifiés bien sûr ) à sa place.
    - afin, tu rafraichis l'adaptateur.

    Désolé pour la théorie sans code, je réponds avec mon smartphone.

    Christian Djo,
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  9. #9
    Membre du Club Avatar de kader15
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2016
    Messages : 65
    Points : 43
    Points
    43
    Par défaut
    Pas de souci, j'ai bien compris ce que tu me proposes,
    J'envoie bien l'id par un Intent, le souci c'est qu'il me dit que ma liste ne comporte aucun élément alors qu'elle en comporte 200 et donc il ne sait pas ou mettre le nouvel élément et me renvoie une exception index = x ('x' étant ma position envoyée par intent), size 0

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     java.lang.IndexOutOfBoundsException: Invalid index 4, size is 0
    Cordialement,


    Partager notre connaissance, c'est le début d'un monde en Paix.

    "L'ignorance mène à la peur, la peur mène à la haine et la haine conduit à la violence. Voilà l'équation." Averroès

    Ball Is Life !

  10. #10
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Déjà il faut utiliser OnItemClickListener, qui est prévu pour te passer en paramètre la position de l'item cliqué. Il suffit alors d'aller à cette position dans ton arrayList, faire une modif, et rafraîchir le tout.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  11. #11
    Membre du Club Avatar de kader15
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2016
    Messages : 65
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par Hephaistos007 Voir le message
    Déjà il faut utiliser OnItemClickListener, qui est prévu pour te passer en paramètre la position de l'item cliqué. Il suffit alors d'aller à cette position dans ton arrayList, faire une modif, et rafraîchir le tout.
    Oui c'est bien ce que je fais j'utilise onItemClick qui me passe en paramètre la position de l'item et dans mon cas je lance une activité je transmet la position par un intent, mais dans ma deuxième activité lorsque j'essaie de modifier j'obtiens une erreur :

    Je commence à desespérer :/

    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
    09-22 15:52:41.370 25107-25107/com.mycoprod.akhetib.mycoprod E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                   java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
                                                                                       at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
                                                                                       at java.util.ArrayList.set(ArrayList.java:481)
                                                                                       at com.mycoprod.akhetib.mycoprod.HMoment$26.onClick(HMoment.java:968)
                                                                                       at android.view.View.performClick(View.java:4475)
                                                                                       at android.view.View$PerformClick.run(View.java:18786)
                                                                                       at android.os.Handler.handleCallback(Handler.java:730)
                                                                                       at android.os.Handler.dispatchMessage(Handler.java:92)
                                                                                       at android.os.Looper.loop(Looper.java:176)
                                                                                       at android.app.ActivityThread.main(ActivityThread.java:5419)
                                                                                       at java.lang.reflect.Method.invokeNative(Native Method)
                                                                                       at java.lang.reflect.Method.invoke(Method.java:525)
                                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
                                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
                                                                                       at dalvik.system.NativeStart.main(Native Method)
    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
     iv_valider.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    String enginForm = engin;
                    String subject = "MyCoProd en direct !";
                    String signatureMail = "MyCoProd,\n" +
                            "NB : Ce message vous est adressé automatiquement. Merci de ne pas y répondre.\n";
     
                    if(cb_enAvance.isChecked()) {
                        String statut = "En avance";
                        String visiteForm = "EN AVANCE : " + visite;
     
                        if (choix1.isChecked()) {
                            String cause = "Engin priorisé" + "\n" + et_ra_ec.getText().toString() + et_motifInconnu.getText().toString();
                            String message = "Attention le train : " + enginForm + "\n\n" +
                                    "Statut  : " + statut + "\n\n" +
                                    "Opération de maintenance : " + visite + "\n\n" +
                                    "N'a pas pu être traité pour la cause suivante : \n" + cause + "\n\n\n" +
                                    signatureMail;
                            if (masteris.isChecked()) {
                                String motif = "MASTERIS";
                                Envoie_Mail(subject, message);
                                excelModifier(titleFile, enginForm, visiteForm, cause, motif);
     
     
     
                                ArrayList<Locom> myList = new ArrayList<Locom>();
                                Locom locom = new Locom(engin,visite,motif);
     
                                LocomAdpater dataAdapter = new LocomAdpater(HMoment.this, myList);
     
                                int o = myList.size();
                                System.out.println("position = " + o);
     
                                myList.set(position,locom);
                                //lv.setAdapter(dataAdapter);
                                dataAdapter.notifyDataSetChanged();
     
                                Intent returnIntent = new Intent();
                                returnIntent.putParcelableArrayListExtra("ETATRESULT",myList);
                                setResult(Activity.RESULT_OK,returnIntent);

    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
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    package com.mycoprod.akhetib.mycoprod;
     
    import android.app.Activity;
    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.os.Bundle;
    import android.view.Gravity;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.AdapterView;
    import android.widget.ListView;
    import android.widget.SearchView;
    import android.widget.TextView;
    import android.widget.Toast;
     
    import java.util.ArrayList;
     
    public class DisplayMyCoProd extends Activity {
     
        public static final String POS_EXCEL = "posExcel";
        public static final String RETOUR = "retourArriere";
     
        static final int ETATRESULT = 1;  // The request code
     
     
        static int ligneMasteris = 16, ligneSLE = 16,ligneSLT = 16, lignePACA = 16, ligneThionville = 38, ligneINFRA = 38;
        static int ligneAppros = 38,lignePlanification = 38,ligneMethodes = 60,ligneCopro = 60,ligneMOD = 60,ligneInstallationsOutillages = 60,ligneRAEC = 82,ligneMotifInconnu = 82;
        static int cptRdvOK = 0;
     
        TextView txtv;
        String pathFile;
     
        public ArrayList<Locom> myList;
     
        LocomAdpater dataAdapter;
        ListView listView;
        SearchView sv;
     
        static boolean i = true;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.display_my_co_prod);
     
            Intent intent = getIntent();
            pathFile = intent.getStringExtra("EXTRA_pathFile");
     
            txtv = (TextView) findViewById(R.id.textView);
            txtv.setText(pathFile);
     
            listView = (ListView) findViewById(R.id.display_listview);
            sv = (SearchView) findViewById(R.id.searchView);
     
            myList = new ArrayList<Locom>();
            dataAdapter = new LocomAdpater(this, myList);
     
            listView.setAdapter(dataAdapter);
     
            listView.setOnItemClickListener(new ItemListView());
     
     
            DownLoadExcel dlExcel = new DownLoadExcel(DisplayMyCoProd.this, pathFile);
            dlExcel.execute();
     
            sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
                @Override
                public boolean onQueryTextSubmit(String text) {
                    return false;
                }
     
                @Override
                public boolean onQueryTextChange(String query) {
                    dataAdapter.getFilter().filter(query);
                    return false;
                }
            });
        }
     
        public void populate(ArrayList<Locom> locom) {
            //this.dataAdapter.clear();
            this.dataAdapter.addAll(locom);
            this.dataAdapter.notifyDataSetChanged();
        }
     
     
        private class ItemListView implements AdapterView.OnItemClickListener {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
     
                ViewGroup vg = (ViewGroup) view;
                TextView tv_e = (TextView) vg.findViewById(R.id.tv_engin);
                TextView tv_v = (TextView) vg.findViewById(R.id.tv_visite);
     
                String engin = tv_e.getText().toString();
                String visite = tv_v.getText().toString();
     
                if (engin.equals("") || visite.equals("")) {
                    //DO NOTHING
                    Toast.makeText(DisplayMyCoProd.this, "Aucun élément sélectionné !", Toast.LENGTH_SHORT).show();
     
                } else {
                    Toast toast = Toast.makeText(DisplayMyCoProd.this, engin + " : " + visite, Toast.LENGTH_SHORT);
                    toast.setGravity(Gravity.TOP | Gravity.LEFT, 0, 0);
                    toast.show();
     
     
     
                    Intent ChoixDMCPActivity = new Intent(DisplayMyCoProd.this, HMoment.class);
                    ChoixDMCPActivity.putExtra("EXTRA_PATHFILE", pathFile);
                    ChoixDMCPActivity.putExtra("EXTRA_TV_E", engin);
                    ChoixDMCPActivity.putExtra("EXTRA_TV_V", visite);
                    ChoixDMCPActivity.putExtra("POSITION", position);
                    Toast.makeText(DisplayMyCoProd.this, "position = "+position, Toast.LENGTH_SHORT).show();
                    Toast.makeText(DisplayMyCoProd.this, "id="+id, Toast.LENGTH_SHORT).show();
                    startActivityForResult(ChoixDMCPActivity, ETATRESULT);
     
                }
            }
        }
     
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            if (requestCode == ETATRESULT) {
                if (resultCode == Activity.RESULT_OK) {
     
                    Bundle bundle = data.getExtras();
                    ArrayList<Locom> myListComReturned = bundle.getParcelableArrayList("ETATRESULT");
                    populate(myListComReturned);
     
                    System.out.println("ArrayList RESULT OK");
                } else if (resultCode == 0) {
                    System.out.println("ArrrayList RESULT CANCELLED");
                }
            }
        }
     
        public void displayFormulaire(View view) {
            Intent FormulaireActivity = new Intent(this, Formulaire.class);
            FormulaireActivity.putExtra("EXTRA_PATHFILE", pathFile);
            startActivity(FormulaireActivity);
        }
     
        public void retourArriere(View view) {
            SharedPreferences sharedPref = getSharedPreferences(RETOUR, Activity.MODE_PRIVATE);
            String nomRetour = sharedPref.getString("nomRetour","");
     
            loadPosExcel();
     
            switch (nomRetour) {
                case "MASTERIS":
                    ligneMasteris--;
                    break;
     
                case "THIONVILLE":
                    ligneThionville--;
                    break;
     
                case "STF ELECTRIQUE":
                    ligneSLE--;
                    break;
     
                case "SLT":
                    ligneSLT--;
                    break;
     
                case "PACA":
                    lignePACA--;
                    break;
     
                case "INFRA":
                    ligneINFRA--;
                    break;
     
                case "Appros":
                    ligneAppros--;
                    break;
     
                case "Planification":
                    lignePlanification--;
                    break;
     
                case "Méthodes":
                    ligneMethodes--;
                    break;
     
                case "Coprod":
                    ligneCopro--;
                    break;
     
                case "MOD":
                    ligneMOD--;
                    break;
     
                case "Installations / Outillages":
                    ligneInstallationsOutillages--;
                    break;
     
                case "RA/EC : ":
                    ligneRAEC--;
                    break;
     
                case "Motif Inconnu : ":
                    ligneMotifInconnu--;
                    break;
     
                default:
                    Toast.makeText(this, "Erreur la dernière ligne n'a pas été effacée :" + nomRetour, Toast.LENGTH_LONG).show();
                    System.out.println("Erreur la dernière ligne n'a pas été effacée :" + nomRetour);
                    break;
     
            }
     
            Toast.makeText(DisplayMyCoProd.this, "La dernière saisie a été effacée ! : " + nomRetour, Toast.LENGTH_LONG).show();
     
            savePosExcel();
        }
     
     
        private void savePosExcel() {
     
            SharedPreferences sharedPref = getSharedPreferences(POS_EXCEL, Activity.MODE_PRIVATE);
            SharedPreferences.Editor editor = sharedPref.edit();
     
            editor.putInt("positionExcelMas", ligneMasteris);
            editor.putInt("positionExcelSLE", ligneSLE);
            editor.putInt("positionExcelSLT", ligneSLT);
            editor.putInt("positionExcelPACA", lignePACA);
            editor.putInt("positionExcelThi", ligneThionville);
            editor.putInt("positionExcelINF", ligneINFRA);
            editor.putInt("positionExcelAPP", ligneAppros);
            editor.putInt("positionExcelPLA", lignePlanification);
            editor.putInt("positionExcelMET", ligneMethodes);
            editor.putInt("positionExcelCOP", ligneCopro);
            editor.putInt("positionExcelMOD", ligneMOD);
            editor.putInt("positionExcelINSOUT", ligneInstallationsOutillages);
            editor.putInt("positionExcelRAEC", ligneRAEC);
            editor.putInt("positionExcelMOTINC", ligneMotifInconnu);
            editor.putInt("rdvTraite", cptRdvOK);
            editor.commit();
        }
     
        private void loadPosExcel() {
            SharedPreferences sharedPref = getSharedPreferences(POS_EXCEL, Activity.MODE_PRIVATE);
     
            int posMas = sharedPref.getInt("positionExcelMas", 16);
            int posSLE = sharedPref.getInt("positionExcelSLE", 16);
            int posSLT = sharedPref.getInt("positionExcelSLT", 16);
            int posPACA = sharedPref.getInt("positionExcelPACA", 16);
            int posThi = sharedPref.getInt("positionExcelThi", 38);
            int posINF = sharedPref.getInt("positionExcelINF", 38);
            int posAPP = sharedPref.getInt("positionExcelAPP", 38);
            int posPLA = sharedPref.getInt("positionExcelPLA", 38);
            int posMET = sharedPref.getInt("positionExcelMET", 60);
            int posCOP = sharedPref.getInt("positionExcelCOP", 60);
            int posMOD = sharedPref.getInt("positionExcelMOD", 60);
            int posINSOUT = sharedPref.getInt("positionExcelINSOUT", 60);
            int posRAEC = sharedPref.getInt("positionExcelRAEC", 82);
            int posMOTINC = sharedPref.getInt("positionExcelMOTINC", 82);
            int rdvOK = sharedPref.getInt("rdvTraite", 0);
     
            ligneMasteris = posMas;
            ligneSLE = posSLE;
            ligneSLT = posSLT;
            lignePACA = posPACA;
            ligneThionville = posThi;
            ligneINFRA = posINF;
            ligneAppros = posAPP;
            lignePlanification = posPLA;
            ligneMethodes = posMET;
            ligneCopro = posCOP;
            ligneMOD = posMOD;
            ligneInstallationsOutillages = posINSOUT;
            ligneRAEC = posRAEC;
            ligneMotifInconnu = posMOTINC;
            cptRdvOK = rdvOK;
        }
    }
    Cordialement,


    Partager notre connaissance, c'est le début d'un monde en Paix.

    "L'ignorance mène à la peur, la peur mène à la haine et la haine conduit à la violence. Voilà l'équation." Averroès

    Ball Is Life !

  12. #12
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    myList.set() plante car il n'y a rien dans ta liste. Voilà ce que dis l'erreur (tu les lis ?)
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  13. #13
    Membre du Club Avatar de kader15
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2016
    Messages : 65
    Points : 43
    Points
    43
    Par défaut
    Oui c'est bien ce que j'ai constaté, mais je ne comprend pas comment je peux récupérer la liste depuis cette activité.
    Aussi pourquoi lorsque j'effectue un myList.add() l’élément s'ajoute bien à ma liste alors qu'avec set il est perdu ?
    Cordialement,


    Partager notre connaissance, c'est le début d'un monde en Paix.

    "L'ignorance mène à la peur, la peur mène à la haine et la haine conduit à la violence. Voilà l'équation." Averroès

    Ball Is Life !

  14. #14
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Parce que add() ajoute un élément à une liste (qui peut tout à fait être vide) alors que set() c'est pour le remplacement d'un objet existant dans la liste (donc ca plante avec une liste vide).

    De ce que je comprend, ce qu'il te faut finalement c'est passer ton ArrayList d'une activité A à une activité B ? cela résoudrait ton problème non ?
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  15. #15
    Membre du Club Avatar de kader15
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2016
    Messages : 65
    Points : 43
    Points
    43
    Par défaut
    J'ai suivi tes conseils et mis en place StartActivityForResult qui me renvoie mon arraylist a mon activité A

    cependant j'obtiens cette fois ci :

    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
    09-22 16:53:31.880 15229-15229/com.mycoprod.akhetib.mycoprod E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                   java.lang.RuntimeException: Unable to resume activity {com.mycoprod.akhetib.mycoprod/com.mycoprod.akhetib.mycoprod.DisplayMyCoProd}: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { (has extras) }} to activity {com.mycoprod.akhetib.mycoprod/com.mycoprod.akhetib.mycoprod.DisplayMyCoProd}: java.lang.IndexOutOfBoundsException: Invalid index 2, size is 0
                                                                                       at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2919)
                                                                                       at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2948)
                                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2354)
                                                                                       at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3877)
                                                                                       at android.app.ActivityThread.access$800(ActivityThread.java:159)
                                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1322)
                                                                                       at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                       at android.os.Looper.loop(Looper.java:176)
                                                                                       at android.app.ActivityThread.main(ActivityThread.java:5419)
                                                                                       at java.lang.reflect.Method.invokeNative(Native Method)
                                                                                       at java.lang.reflect.Method.invoke(Method.java:525)
                                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
                                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
                                                                                       at dalvik.system.NativeStart.main(Native Method)
                                                                                    Caused by: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { (has extras) }} to activity {com.mycoprod.akhetib.mycoprod/com.mycoprod.akhetib.mycoprod.DisplayMyCoProd}: java.lang.IndexOutOfBoundsException: Invalid index 2, size is 0
                                                                                       at android.app.ActivityThread.deliverResults(ActivityThread.java:3500)
                                                                                       at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2906)
                                                                                       at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2948)*
                                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2354)*
                                                                                       at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3877)*
                                                                                       at android.app.ActivityThread.access$800(ActivityThread.java:159)*
                                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1322)*
                                                                                       at android.os.Handler.dispatchMessage(Handler.java:99)*
                                                                                       at android.os.Looper.loop(Looper.java:176)*
                                                                                       at android.app.ActivityThread.main(ActivityThread.java:5419)*
                                                                                       at java.lang.reflect.Method.invokeNative(Native Method)*
                                                                                       at java.lang.reflect.Method.invoke(Method.java:525)*
                                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)*
                                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)*
                                                                                       at dalvik.system.NativeStart.main(Native Method)*
                                                                                    Caused by: java.lang.IndexOutOfBoundsException: Invalid index 2, size is 0
                                                                                       at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
                                                                                       at java.util.ArrayList.set(ArrayList.java:481)
                                                                                       at com.mycoprod.akhetib.mycoprod.DisplayMyCoProd$override.onActivityResult(DisplayMyCoProd.java:132)
                                                                                       at com.mycoprod.akhetib.mycoprod.DisplayMyCoProd$override.access$dispatch(DisplayMyCoProd.java)
                                                                                       at com.mycoprod.akhetib.mycoprod.DisplayMyCoProd.onActivityResult(DisplayMyCoProd.java:0)
                                                                                       at android.app.Activity.dispatchActivityResult(Activity.java:5563)
                                                                                       at android.app.ActivityThread.deliverResults(ActivityThread.java:3496)
                                                                                       at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2906)*
                                                                                       at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2948)*
                                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2354)*
                                                                                       at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3877)*
                                                                                       at android.app.ActivityThread.access$800(ActivityThread.java:159)*
                                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1322)*
                                                                                       at android.os.Handler.dispatchMessage(Handler.java:99)*
                                                                                       at android.os.Looper.loop(Looper.java:176)*
                                                                                       at android.app.ActivityThread.main(ActivityThread.java:5419)*
                                                                                       at java.lang.reflect.Method.invokeNative(Native Method)*
                                                                                       at java.lang.reflect.Method.invoke(Method.java:525)*
                                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)*
                                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)*
                                                                                       at dalvik.system.NativeStart.main(Native Method)*
    Cordialement,


    Partager notre connaissance, c'est le début d'un monde en Paix.

    "L'ignorance mène à la peur, la peur mène à la haine et la haine conduit à la violence. Voilà l'équation." Averroès

    Ball Is Life !

  16. #16
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Là c'est un problème dans la méthode onActivityResult(). Il doit falloir affiner les conditions de traitement avec :
    if(resultCode != RESULT_CANCELED){
    if (requestCode == ETATRESULT) {
    }
    }
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  17. #17
    Membre du Club Avatar de kader15
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2016
    Messages : 65
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par Hephaistos007 Voir le message
    Là c'est un problème dans la méthode onActivityResult(). Il doit falloir affiner les conditions de traitement avec :
    if(resultCode != RESULT_CANCELED){
    if (requestCode == ETATRESULT) {
    }
    }
    Pardon mais je n'ai pas compris ce que tu veux dire par affiner :

    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
     @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     
            if (resultCode != RESULT_CANCELED){
                if (requestCode == ETATRESULT) {
                    if (resultCode == Activity.RESULT_OK) {
     
                        Bundle bundle = data.getExtras();
                        ArrayList<Locom> myListComReturned = bundle.getParcelableArrayList("ETATRESULT");
     
                        ArrayList<Locom> l = new ArrayList<Locom>();
                        Locom a = new Locom("A", "B", "C");
                        l.set(2, a);
                        populate(l);
     
                        System.out.println("ArrayList RESULT OK");
                    } else if (resultCode == 0) {
                        System.out.println("ArrrayList RESULT CANCELLED");
                    }
                }
            }
        }
    Cordialement,


    Partager notre connaissance, c'est le début d'un monde en Paix.

    "L'ignorance mène à la peur, la peur mène à la haine et la haine conduit à la violence. Voilà l'équation." Averroès

    Ball Is Life !

  18. #18
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Ce que je veux dire, c'est qu'avant de faire tous tes traitements, il faut déjà être certain que la méthode onActivityResult a été appelée convenablement. D'ailleurs, es-tu sûr que cette méthode est appelée (avec un Log) ?

    Cette ligne est suspecte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Failure delivering result ResultInfo{who=null, request=1, result=-1
    Et où est l’instruction finish() après avoir fait setResult() ??
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  19. #19
    Membre du Club Avatar de kader15
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2016
    Messages : 65
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par Hephaistos007 Voir le message
    Ce que je veux dire, c'est qu'avant de faire tous tes traitements, il faut déjà être certain que la méthode onActivityResult a été appelée convenablement. D'ailleurs, es-tu sûr que cette méthode est appelée (avec un Log) ?
    Oui j'ai testé la méthode onActivityResult se déroule correctement et elle s’arrête arrivée au set
    Cordialement,


    Partager notre connaissance, c'est le début d'un monde en Paix.

    "L'ignorance mène à la peur, la peur mène à la haine et la haine conduit à la violence. Voilà l'équation." Averroès

    Ball Is Life !

  20. #20
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Toujours pareil :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                        ArrayList<Locom> l = new ArrayList<Locom>(); //cette liste est vide
                        Locom a = new Locom("A", "B", "C"); 
                        l.set(2, a);  //donc plantage ici
    Ta vraie liste non vide c'est celle reçu par l'intent : myListComReturned !!
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

Discussions similaires

  1. Update listview depuis une activité
    Par kader15 dans le forum Composants graphiques
    Réponses: 17
    Dernier message: 18/04/2016, 09h37
  2. Réponses: 2
    Dernier message: 12/08/2015, 16h43
  3. [AC-2003] Windows Update & Listview/Treeview (problème)
    Par cactus38 dans le forum VBA Access
    Réponses: 6
    Dernier message: 05/09/2012, 09h34
  4. notifyDataSetChanged ne rafraîchit pas ma ListView
    Par Drlord dans le forum Composants graphiques
    Réponses: 2
    Dernier message: 08/03/2012, 18h08
  5. [c#] ListView affichant des images updates en temps reel
    Par elguignardo dans le forum Windows Forms
    Réponses: 1
    Dernier message: 10/05/2006, 11h49

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