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 :

Gérer des données envoyées par deux Intent différents


Sujet :

Android

  1. #1
    Membre actif Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Points : 279
    Points
    279
    Par défaut Gérer des données envoyées par deux Intent différents
    Bonjour,
    Y'a t-il un moyen pour gérer les données envoyés par deux intent de classes différentes?
    c'est à dire par exemple j'ai deux classes, chaque classe a un traitement à part, indépendamment de l'autre. Cependant, les deux créent des intent pour une seul classe:exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	Intent view = new Intent(NearestCenter.this, GetCenterComments.class);
    		    			view.putExtra(NearestCenter.IDD, _id);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	Intent view = new Intent(OptionsMenu.this, GetCenterComments.class);
    		    			view.putExtra(OptionsMenu.IDD, _id);
    et puis le _id doit etre récupéré soit à travers OptionsMenu soit à travers NearestCenter
    mais le problème que je ne sais pas comment faire par exemple
    si ça vient de OptionsMenu alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      Intent i = getIntent();
         // getting training center id from intent
            center_id = i.getStringExtra(OptionsMenu.IDD);
    sinon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      Intent i = getIntent();
         // getting training center id from intent
            center_id = i.getStringExtra(NearestCenter.IDD);
    pour expliquer plus, parfois l'accès à la classe se fait à travers NearestCenter et parfois à travers OptionsMenu.
    Merci pour votre aide
    "Scientists dream about doing great things. Engineers do them.”

    La réussite après tant de travail est un sentiment à vivre

    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Java / C++
    Inscrit en
    Mars 2013
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java / C++

    Informations forums :
    Inscription : Mars 2013
    Messages : 128
    Points : 228
    Points
    228
    Par défaut
    Bonjour janyoura,

    Si je comprends bien, vous souhaitez être capable d'identifier qui a fourni des données, il suffit de regarder ce qui est envoyé sachant que:

    - getStringExtra(java.lang.String) renvoi null si la clé n'existe pas
    - il existe hasExtra(java.lang.String) qui renvoie vrai si la clé existe, faux sinon.

    Ce qui donne deux possibilités:

    Première possibilité:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if(hasExtra(NearestCenter.IDD)){
         // Ici on récupère avec NearestCenter.
    }
     
    if(hasExtra(OptionsMenu.IDD){
        // Ici on récupère avec OptionMenu.
    }
    Seconde possibilité:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if(getStringExtra(NearestCenter.IDD) != null){
         // Ici on récupère avec NearestCenter.
    }
     
    if(getStringExtra(OptionsMenu.IDD) != null){
         // Ici on récupère avec OptionMenu.
    }
    C'est ce que vous cherchiez?
    Pensez à lire les règles du forum avant de poster.

    Si un poste ou un commentaire vous a été utile, merci de mettre un petit !
    Problème résolu? alors pensez à cliquer sur .
    Si vous avez trouvé la solution tout seul, merci de la poster, ça pourrait aider les suivants!

    Bonjour, s'il vous plaît et merci => ses mots ne coûtent rien, mais ils font toujours plaisirs!

  3. #3
    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
    Je pense que tout dépend de l'activité finale.

    On ne gère pas les Intents en fonction de l'appelant (A et B appellent C, on met à jour C en fonction de A et B).
    Mais dans l'autre sens: une activité C, quelles sont les actions (et leurs paramètres) qui font sens pour cette activité... Ensuite à A et B d'envoyer le bon intent.

    Je dis ceci pour plusieurs raisons: d'abord question séparation du code, puisque A et B vont appeler C, ils doivent le connaitre.... Mais gérés de cette manière, C va aussi devoir connaitre A et B...


    Donc dans l'idéal on aurait l'inverse:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    class ActivityC 
    {
          public static final String ACTION_1 = "XXXXXX";
          public static final String ACTION_2 = "XXXXXX";
     
          public static final String EXTRA_VAR1 = "XXXXX";
          public static final String EXTRA_VAR2 = "XXXXX";
          public static final String EXTRA_VAR3 = "XXXXX";
     
    }
    ActivityC se débrouille pour tout faire à partir de ces données là....

    ActivityA et ActivityB utilisent les définitions de ActivityC pour construire leur intents.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  4. #4
    Membre actif Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Points : 279
    Points
    279
    Par défaut
    oui c'est exactement ça, merci.
    Je vais tester si ça marche correctement.
    "Scientists dream about doing great things. Engineers do them.”

    La réussite après tant de travail est un sentiment à vivre

    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

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

Discussions similaires

  1. [PHP 5.3] Niveaux de protection des données envoyées par la méthode post
    Par bailamos dans le forum Langage
    Réponses: 1
    Dernier message: 24/03/2010, 20h30
  2. [AJAX] encodé des donnés envoyé par POST
    Par stc074 dans le forum AJAX
    Réponses: 2
    Dernier message: 19/07/2009, 18h00
  3. Réponses: 2
    Dernier message: 30/04/2009, 12h46
  4. [Sécurité] Cryptage des données envoyées par le réseau
    Par DeusXL dans le forum Développement
    Réponses: 6
    Dernier message: 05/03/2007, 04h29
  5. Récuperation des données envoyées par Form en POST
    Par bobatel dans le forum Langage
    Réponses: 9
    Dernier message: 26/04/2006, 14h59

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