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 :

Tuer une activity depuis une autre


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 93
    Par défaut Tuer une activity depuis une autre
    Bonjour à tous ,

    Un petit problème de débutant (je pense)

    J'ai une Activity A qui lance une activity B qui lance elle même une activity C ,

    Dans l'activity C j'ai un bouton connexion/deconnexion dont j'aimerai qu'il nous fasse revenir à l'activity A en tuant C et B ,

    C'est possible ca ?

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Par défaut
    Citation Envoyé par bonofred Voir le message
    Bonjour à tous ,

    Un petit problème de débutant (je pense)

    J'ai une Activity A qui lance une activity B qui lance elle même une activity C ,

    Dans l'activity C j'ai un bouton connexion/deconnexion dont j'aimerai qu'il nous fasse revenir à l'activity A en tuant C et B ,

    C'est possible ca ?
    Revenir à A depuis C... c'est un peu compliqué, il faut passer par deux heritages...
    L'idée c'est de creer une Activity mere qui s'etends de la mere Activity qui s'occupera de tuer les fils et afficher les fils... C'est avancée quand meme cette solution.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 93
    Par défaut
    Et si je ne suis pas obligé de tuer l'activité ? par exemple depuis C je lui demanderai de revenir automatiquement sur A si j'appuie sur un bouton toto par exemple (sans faire de startActivity qui lancerai une nouvelle Activity A) ,

    Ca serait possible ca ?

  4. #4
    Expert confirmé

    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
    Par défaut
    Bonjour,


    Je te déconseille de passer comme ça , n'oublie pas que le principe des vues d'android et d'empiler/dépiler celle-ci , en lançant une nouvelle activity A , tu te retrouverais avec A, B , C ,A comme vue empiler ...


    Si tu veux réellement revenir à l'activity A , fais comme jahbromo te l'as expliqué . Pour cela une méthode simple serait de faire un startActivityForResult sur tes activity et retourner un boolean pour prévenir l'activity intermédiaire de sa fermeture .

    Du Style A , B , C
    dont A lance en startactivityforresult B et B de même lance C .

    Si en C l'utilisateur veut revenir en A ,

    Lors du onActivityForResult de B , tu fais un finish de B depuis celle ci , si C lui demande avec une valeur de retour que tu aura prédéfini (type int ou boolean comme tu veux ).

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 93
    Par défaut
    Hi ,

    Je vois à peu près le principe mais je cale sur le code , t'aurais pas un squelette ou un pseudo-code ?

    Donc en gros dans C je dois faire un startActivityForResult vers B avec un boolean kill = true par exemple et dans le onActivityResult de B si kill=true , je fais un finish() ?

  6. #6
    Expert confirmé

    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
    Par défaut
    Hmm

    Dans ta Class B

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Intent intent  = new Intent(ClassC.class); // Ta class C
    startActivityForResult(intent,0);
    dans ta class C

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    setResult(0);// tu peux utiliser setResult au lieu d'une variable 
    finish();
    Si tu as d'autres paramètres à remonter utilise SetResult(int, intent);
    Tu retrouveras tes valeurs dans la variable data


    dans ta class B

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    protected void onActivityResult (int requestCode, int resultCode, Intent data) {
     
     if(requestCode == 0 ) {
          if (resultCode == 0 )
               finish();
          else
              // on laisse la class B afficher 
     }
     
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/10/2015, 17h16
  2. Tuer une activity depuis une autre (bis)
    Par bonofred dans le forum Android
    Réponses: 1
    Dernier message: 18/03/2011, 10h13
  3. Action d'une activity depuis une autre activity
    Par Simon MARQUIS dans le forum Android
    Réponses: 18
    Dernier message: 05/02/2011, 16h21
  4. Réponses: 2
    Dernier message: 26/11/2007, 12h22
  5. Réponses: 3
    Dernier message: 16/01/2006, 16h02

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