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 :

Données perdues en navigant entre Fragments


Sujet :

Composants graphiques Android

  1. #1
    Membre à l'essai
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Novembre 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Expert sécurité informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 21
    Points : 22
    Points
    22
    Par défaut Données perdues en navigant entre Fragments
    Bonjour,
    je suis en train de développer une application Android et j'utilise les android.support.v4.app.Fragments. Et j'ai un problème que j'ai lui pas trouvé une solution et je compte sur vous pour m'aider.
    Alors, j'ai une activité qui contient une listView w un Fragment et en cliquant sur un item de la liste je replace mon Fragment par un autre, mais le problème si j'ajoute des views dans mon Fragment et je le replace par un autre et je reviens sur lui(en utilisant le bouton retour du portable) je trouve pas mes views.

    voila un peu de code pour mieux comprendre la situation:
    fragment.class
    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
    @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
     
            View addReport = inflater
                    .inflate(R.layout.add_report, container, false);
     
            ListView listView = (ListView) addReport.findViewById(R.id.list);
            // listView.addHeaderView(padding);
            listView.setDivider(new GradientDrawable(Orientation.LEFT_RIGHT, colors));
            listView.setDividerHeight(1);
     
            remplirListOfReport();
            ReportAdaptor reportSchedule = new ReportAdaptor(getActivity(),
                    R.layout.report_item_format, listOfReports);
            listView.setAdapter(reportSchedule);
            // Inflate the root layout
            myInflater = (LayoutInflater) addReport.getContext().getSystemService(
                    Context.LAYOUT_INFLATER_SERVICE);
     
            uploadFiles = (LinearLayout) addReport.findViewById(R.id.upload_layout);
            picture = (Button) addReport.findViewById(R.id.picture);
            video = (Button) addReport.findViewById(R.id.video);
            vocale = (Button) addReport.findViewById(R.id.vocal);
            report = (EditText) addReport.findViewById(R.id.report_text);
     
            picture.setOnClickListener(buttonOnClickListener);
            video.setOnClickListener(buttonOnClickListener);
            vocale.setOnClickListener(buttonOnClickListener);
     
            return addReport;
        }
     
    Button.OnClickListener buttonOnClickListener = new Button.OnClickListener() {
            private String fullPathAudio = "";
        @Override
        public void onClick(View v) {
            if (v == picture) {
                if(null != getGPSCoordonnee(getActivity())){
                    Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                    startActivityForResult(intent, MEDIA_TYPE_IMAGE);
                }
            } else if (v == video) {
                if(null != getGPSCoordonnee(getActivity())){
                     Intent intent1 = new Intent(android.provider.MediaStore.ACTION_VIDEO_CAPTURE);
                     intent1.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); // set
                     //the video image quality to high
                     startActivityForResult(intent1, MEDIA_TYPE_VIDEO);
                }
     
            } else if (v == vocale) {
                if(null != getGPSCoordonnee(getActivity())){
                    getOutputMediaFile(MEDIA_TYPE_AUDIO);
                    fullPathAudio = URL_START_WITH + File.separator + AUDIO_NAME;
     
                    vocale.setText("Vocal");
                    View audioView = myInflater.inflate(R.layout.picture_format,
                            uploadFiles, false);
     
                    description = (TextView) audioView
                            .findViewById(R.id.picture_text);
                    imageView = (ImageView) audioView
                            .findViewById(R.id.picture_image);
                    edit = (Button) audioView.findViewById(R.id.picture_edit);
                    date = (TextView) audioView.findViewById(R.id.picture_date);
     
                    date.setText(TIME);
                    description.setText("Audio");
     
                    imageView.setOnClickListener(new OnClickListener() {
     
                        @Override
                        public void onClick(View v) {
                            Intent intent2 = new Intent(getActivity(),
                                    ShowVideo.class);
                            intent2.putExtra("videoName", fullPathAudio);
                            startActivity(intent2);
                        }
                    });
     
                    edit.setOnClickListener(new OnClickListener() {
     
                        @Override
                        public void onClick(View arg0) {
                            editPictureNames(description);
                        }
                    });
     
                    uploadFiles.addView(audioView);
     
                    Intent myIntent = new Intent(getActivity(),
                            AudioRecordingActivity.class);
                    myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    myIntent.putExtra("path", fullPathAudio);
                    getActivity().startActivity(myIntent);
                }
            } 
        }
     
    };
    c'est la méthode ou je replace mes Fragments:
    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
    @Override
        public void addReport(long id) {
            LEADERBOARD_FRAG_TAG = "REPORT";
            int show = 0;
            fragment = getSupportFragmentManager().findFragmentByTag(LEADERBOARD_FRAG_TAG);
            if(null == fragment){
                fragment = new AddReportFragment();
                show = 0;
            }else
                show = 1;
            FragmentManager manager = getSupportFragmentManager();
            FragmentTransaction transaction = manager.beginTransaction();
     
            transaction.replace(R.id.myFragment, fragment, LEADERBOARD_FRAG_TAG);
            transaction.addToBackStack(null);
            transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
            transaction.commit();
        }

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    As-tu essayé d'ajouté l'instruction suivante dans le onCreate de tes Fragments
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setRetainInstance(true);

  3. #3
    Membre à l'essai
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Novembre 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Expert sécurité informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 21
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par Simon MARQUIS Voir le message
    As-tu essayé d'ajouté l'instruction suivante dans le onCreate de tes Fragments
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setRetainInstance(true);
    ça marche pas

  4. #4
    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
    Salut,

    Si tu ne veux pas revenir sur le fragment précédent alors il faut que tu fasses un remove dessus.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getActivity().getSupportFragmentManager().beginTransaction().remove(this).commit();
    ou un popBackStack
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getActivity().getSupportFragmentManager().popBackStack();
    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. [CR XI] Données perdues entre l'aperçu et la génération pdf
    Par pcdj dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 03/11/2009, 10h39
  2. Réponses: 2
    Dernier message: 09/12/2005, 23h44
  3. Données perdues sur disque dur esclave ?
    Par maadadi dans le forum Composants
    Réponses: 11
    Dernier message: 18/10/2005, 20h51
  4. Réponses: 1
    Dernier message: 25/09/2005, 17h52
  5. [Forms] : Gestion de Navigation entre module
    Par patmaba dans le forum Forms
    Réponses: 12
    Dernier message: 09/04/2004, 14h09

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