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 :

Reprendre une activité


Sujet :

Android

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 521
    Points : 136
    Points
    136
    Par défaut Reprendre une activité
    Bonjour.

    Savez vous quelle fonction est utilisé lorsqu'on quitte une sous activité, pour revenir a l'activité principale ?

    Merci si vous pouvez m'aider.

  2. #2
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Heu... aucune c'est la base....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Activité A:  startActivity(B)
       A.onSuspend()
       A.onStop()
       B.onCreate()
       B.onStart();
       B.onResume()
       => on est dans B.
    Activité B:  finish();
       B.onSuspend()
       B.onStop()
       A.onStart()
       A.onResume() 
       => on est de retour dans A.
    Sinon, si A a besoin d'être notifié spécifiquement du retour de B il faut utiliser startActivityForResult
    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
     
    Activité A:  startActivityForResult(B)
       A.onSuspend()
       A.onStop()
       B.onCreate()
       B.onStart();
       B.onResume()
       => on est dans B.
    Activité B:  setResult(); finish();
       B.onSuspend()
       B.onStop()
       A.onStart()
       A.onResume() 
       A.onActivityResult()
       => on est de retour dans A.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    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
    Pour compléter Nicroman:

    Tu peux notifier dans ton manifest ton activté parente

    http://developer.android.com/guide/t...y-element.html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    android:parentActivityName="string"
    De ce fait il ira a l'activité parente lors d'un retour sur la navigation
    this attribute was introduced in API Level 16.
    Elle est présente sur la library support faut juste lui ajouter une meta data
    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.

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 521
    Points : 136
    Points
    136
    Par défaut
    Merci, Nicroman.

    Ca ne marche pas...En fait j'essaye simplement d'écrire un score depuis ma sous activité pour l'afficher dans l'activité principale dès qu'on y revient.

    Ca donne ceci dans ma sous activité :

    - on écrit le score avant de quitter :

    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
        @Override
        protected void onStop() {
     
            int val = gameContent.builder.score ;
     
            gameContent.destroyDrawingCache();
     
     
            BufferedWriter writer = null;
            try {
                writer =
                        new BufferedWriter(new OutputStreamWriter(openFileOutput("demo01",
                                Context.MODE_PRIVATE)));
                writer.write("meilleur score : " + val );
     
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (writer != null) {
                    try {
                        writer.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
     
            super.onStop();
        }
    retour a mon activité principale, on lit le score avec onstart :

    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
     
        @Override
        protected void onStart()
        {
            BufferedReader input = null;
            try
            {
                input = new BufferedReader(new InputStreamReader(openFileInput("demo01")));
                String line;
                StringBuffer buffer = new StringBuffer();
                while ((line = input.readLine()) != null) {
     
                    textView2 = (TextView)findViewById(R.id.score );
     
                    textView2.setTextSize(32);
     
                    textView2.setText(line);
     
     
                    //buffer.append(line);
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (input != null) {
                    try {
                        input.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
            super.onResume();
            super.onStart();
        }
    Ce qui se passe, c'est que le score précédent s'affiche et non le dernier établi dans la sous activité.

  5. #5
    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
    Il faut que tu passes tes données depuis un Bundle qui sera récupérer dans ton activité principale.

    Et non par un fichier ....

    http://developer.android.com/referen.../Activity.html

    Tu as la doc dans Starting Activities and Getting Results
    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.

  6. #6
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 521
    Points : 136
    Points
    136
    Par défaut
    Merci Feanorin.

    J'ai du mal a saisir comment on fait ?

  7. #7
    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,
    Citation Envoyé par mazertys17 Voir le message
    J'ai du mal a saisir comment on fait ?
    Bah, à partir de l'activity principale tu lances l'activity secondaire avec la méthode startActivityForResult. Ensuite, dans l'activity secondaire, pour renvoyer le score vers l'activity principale tu enregistres ce score dans un Bundle et tu attaches ce bundle au resultat à à renvoyer. Pour finir, dans l'activity principale tu récupères le bundle renvoyé par l'activity secondaire puis tu le traites comme tu veux...

    Christian,
    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.

  8. #8
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 521
    Points : 136
    Points
    136
    Par défaut
    Merci, MasterMbg...

    Pourrais tu être un peut plus précis s.t.p ?
    Comment fait-on pour enregistrer le score dans un Bundle et tu l'attacher a ce bundle au résultat à à renvoyer ?

  9. #9
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    As tu lu le lien donné par masterBG ?
    http://developer.android.com/trainin...ts/result.html

    On peut difficilement faire plus en terme d'explication
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 521
    Points : 136
    Points
    136
    Par défaut
    Ok, merci, j'avou que j'ai un peu de mal avec l'anglais.

    Alors si j'ai bien compris, j'attache une valeur dans l'activité principale :

    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
     
      Bundle extras;
     
     
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            ...
            extras = new Bundle();
            extras.putInt("key1", 7 );
            ...
        }
     
     
        @Override
        public void onClick(View v)
        {
            Intent intent = new Intent(this, Activity2.class);
            intent.putExtras(extras);
     
            this.startActivityForResult(intent, 1);
     
        }
    ensuite je modifie cette valeur depuis ma sous activité :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
     
            super.onCreate(savedInstanceState);
     
            Bundle extras = getIntent().getExtras();
            extras.putInt("key1", 1717 );
     
        }
    sauf que quand je reviens a mon activité principale, ma valeur reste celle du départ, a savoir 7...

    Ai-je oublié quelque chose ?

    Merci si vous pouvez m'aider.

Discussions similaires

  1. [PHP-JS] PHP + VBS, reprendre une variable php avec vbs
    Par el_butcho dans le forum Langage
    Réponses: 6
    Dernier message: 25/08/2006, 17h52
  2. [MSSQL2K] methode pour reprendre une BDD incomprehensible
    Par igorzup dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 16/02/2006, 12h44
  3. MaxDom : Comment reprendre une incrémentation ?
    Par priest69 dans le forum Access
    Réponses: 9
    Dernier message: 24/01/2006, 10h23
  4. Reprendre une date dans la barre d'adresse.
    Par kmayoyota dans le forum ASP
    Réponses: 32
    Dernier message: 03/09/2004, 08h46
  5. Reprendre une procedure dans une autre ?
    Par Poisson Rouge dans le forum Langage
    Réponses: 3
    Dernier message: 17/07/2002, 22h51

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