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 :

Attendre le retour d'un startActivityForResult


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Par défaut Attendre le retour d'un startActivityForResult
    Bonsoir,

    sur mon application j'ai une classe mère.java dans laquelle il y a un bouton, dont l'action va lancer une autre activité fille.java avec la méthode: startActivityForResult.

    Je voudrais que la classe mère attende le finish() de la classe fille avant de continuer à exécuter la suite du code qui se trouve après la méthode startActivityForResult???

    Merci pour vos réponses.

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 216
    Par défaut
    Salut,

    si je comprend bien, lors du clic sur le bouton tu lance une autre activity et tu voudrais que ce qu'il y a après dans ta méthode Onclic ne soit exécute qu’après avoir reçut le result de l'autre activity ? c'est bien ça ? (sans code c'est moins facile de comprendre)

    donc tu as :

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    		Button TonBoutton = [...];
    		TonBoutton.setOnClickListener(new OnClickListener() {
     
    			@Override
    			public void onClick(View v) {
     
    				[actions avant]
     
    				[lancement de ton activity fille]
     
    				[action a faire après le résultat]
    			}
    		});

    il faut mettre les action a faire après le résultat dans une méthode que tu appelle lorsque tu reçoit le résultat :

    Code java : 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
    		Button TonBoutton = [...];
    		TonBoutton.setOnClickListener(new OnClickListener() {
     
    			@Override
    			public void onClick(View v) {
     
    				[actions avant]
     
    				[lancement de ton activity fille]
    			}
     
    	protected void onActivityResult(int requestCode, int resultCode, Intent data){
    		super.onActivityResult(requestCode, resultCode, data);
     
    		switch (requestCode) {
    		case 0:
    			Afaireapres(); break;
    		});
     
            public void Afaireapres(){
     
                    [action a faire après le résultat]
    }

    a tester, encore une fois sans code c'est dur.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Par défaut
    Merci pour ta réponse, j'avais commencé à faire cela. Mais un petit problème se pose, c'est que le code pour lancer l'intent se trouve après un if. Donc des fois il se lance et des fois non, mais le code qui est après doit toujours se lancer.

    Voici le code un peu plus détaillé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Button TonBoutton = [...];
    		TonBoutton.setOnClickListener(new OnClickListener() {
     
    			@Override
    			public void onClick(View v) {
     
    			   boolean res = [actions avant]...
                               if (res) {
    				[lancement de ton activity fille]
                               }
       			   [action a faire après le résultat]
    			}
    		});
    Comme l'activité fille se lance quelques fois mais pas tout le temps, je ne peux pas déclencher les actions à faire après elle dans le onActivityResult, car des fois aucun appel à cette méthode ne sera exécuté.

    J'ai retourné le problème dans tous les sens, mais j'ai bien l'impression que ce n'est pas possible.

  4. #4
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    Prend l'archi proposée par yrtera et rajoute un else, tout simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    TonBoutton.setOnClickListener(new OnClickListener() {
    	@Override
    	public void onClick(View v) {
    		   boolean res = [actions avant]...
     
    		   if (res) {
    				[lancement de ton activity fille]
    			} else {
    				maSuperMethode();
    			}
    	}
    });
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 05/07/2012, 23h01
  2. lancer un script bash sans attendre le retour
    Par truffrose dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 09/05/2012, 11h00
  3. Attendre le retour du formulaire -- comme un msgbox
    Par Mustard007 dans le forum IHM
    Réponses: 2
    Dernier message: 05/01/2007, 18h40
  4. [Vb6] Attendre le retour d'un form
    Par Zaal dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 02/10/2006, 13h46

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