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 :

Appeler LocationSettings avec des extras


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 86
    Par défaut Appeler LocationSettings avec des extras
    Bonjour j'aimerai ajouté des extras quand j'appelle les setting pour pouvoir les recuperer dans le OnActivityResult();

    Mon probleme est que le resultat est toujours null peut-être que je n'utilise pas la bonne technique mais voici mon code
    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
     
    //...
    Intent i = new Intent( android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS) ;
    	 i.putExtra("Destination", Destination);
             startActivityForResult(i, 1);
     
     
    //...
     
    protected void onActivityResult(int arg0, int arg1, Intent arg2) 
    	{
    		 super.onActivityResult(arg0, arg1, arg2);
     
    		 Destination = arg2.getExtras().getString("Destination"); 
    	}

    Le probleme est que le getExtra leve un NullPointException avez vous une idée sur comment appeler un setting de l'application tout en gardant les valeur de l'extra quand l'utilisateur fais le ''back'' ?

    Je vous remercie par avance de vos idées

  2. #2
    Membre émérite
    Avatar de LeBzul
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 381
    Par défaut
    Tu ne peux pas faire comme cela.

    Lorsque tu lances la methode "startActivityForResult", il faut que tu lui donnes un requestCode qui te permettra d'identifier le retour.
    Ensuite dans la methode déclenché au retour "onActivityResult(int requestCode, int resultCode, Intent data)" tu regardes le requestCode pour faire le liens.

    Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private final static int DESTINATION = 0;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Intent i = new Intent( android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS) ;
    startActivityForResult(i, DESTINATION);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    {
       if(requestCode == DESTINATION)
      {
    //Code a mettre ici
      }
    }

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 86
    Par défaut
    `
    Tu ne peux pas faire comme cela.

    Lorsque tu lances la methode "startActivityForResult", il faut que tu lui donnes un requestCode qui te permettra d'identifier le retour.
    Ensuite dans la methode déclenché au retour "onActivityResult(int requestCode, int resultCode, Intent data)" tu regardes le requestCode pour faire le liens.


    Bonjour LeBzul,
    Merci pour ta reponse , mais mon probleme se trouve plus au niveau des extras,

    Exemple
    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
     
    Intent i = new Intent( android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS) ;
    i.putExtra("test", "un test");
    startActivityForResult(i, DESTINATION);
     
     
    protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    {
       if(requestCode == DESTINATION)
      {
        String  test = data.getExtras().getString("test");  //NullPointException
      }
    }
     
     
    Je te remercie

  4. #4
    Expert confirmé

    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
    Billets dans le blog
    3
    Par défaut
    Null pointer exception parce qu'il n'y a pas d'extra dans l'intent de retour => getExtras().getXXXX => Null pointer exception.


    Pourquoi t'attends tu à ce qu'il y ait des extras ?
    L'intent de retour n'a rien à voir avec l'intent de lancement...

    Qu'est ce que tu entends par "Destination" ?
    Et pas besoin de passer de "valeur" vu qu'on reste dans le même objet, autant stocker la valeur de manière locale à la classe.

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 86
    Par défaut
    Bonjour nicroman merci de ta reponse

    oui le nullPointException se produit lors du getExtra

    Pourquoi t'attends tu à ce qu'il y ait des extras ?
    L'intent de retour n'a rien à voir avec l'intent de lancement...
    J'utilise des extras car l'activity qui appelle l'activity où se produit le nullPoint lui envoie des extra et je recupere ses extras dans le OnCreate, le probleme est que que si j'ouvre les settings l'utilisateur ne peut revenir dans l'application qu'en faisant back et dans ce cas les extra sont null d'où mon besoins de garder ses extras quand j'appelle les settings et je ne veux pas retourner en bdd pour re-rechercher la valeur si tu as une meilleur approche je suis preneur

    Merci

  6. #6
    Expert confirmé

    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
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par ppost Voir le message
    oui le nullPointException se produit lors du getExtra
    Enfin... pour être parfaitement précis... getExtras() retourne null....
    et donc ".getXXXX()" derrière fais un null pointer exception.


    J'utilise des extras car l'activity qui appelle l'activity où se produit le nullPoint lui envoie des extra
    Ok... donc l'intent qui a servi à lancé l'activity a des extras.

    et je recupere ses extras dans le OnCreate
    no problem, c'est bien ça.

    le probleme est que que si j'ouvre les settings l'utilisateur ne peut revenir dans l'application qu'en faisant back
    Oui, c'est le principe.

    et dans ce cas les extra sont null
    Mais quels extras ? Pourquoi faire (puisque tu les as déjà lu dans le onCreate avant) ?

    d'où mon besoins de garder ses extras quand j'appelle les settings
    Oui mais je crois qu'on ne s'est pas bien compris:

    YYYY.onCreate (reception de l'intent "A" avec extras)
    YYYY.startActivityForResults(settings): creation d'un intent "B" (les extras sont des paramètres pour l'activité destinataire)
    YYYY.onActivityResults(intent): reception d'un intent "C" (les extras sont les valeurs retournées par l'activité)

    Comment veux tu que des extras passés à B reviennent dans C ?

    et je ne veux pas retourner en bdd pour re-rechercher la valeur si tu as une meilleur approche je suis preneur
    Ne sachant pas plus de l'architecture de l'application je ne peux rien conseiller de plus... Je ne comprends toujours pas pourquoi tu as besoin des extras dans le onActivityResult puisque tu les as déjà eu bien avant.

Discussions similaires

  1. Appel fonction avec des paramètres se trouvant dans des cellules
    Par SI-SHARE dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/04/2013, 10h02
  2. Réponses: 3
    Dernier message: 09/08/2006, 11h58
  3. [ASE][T-SQL] Appel d'une sous-proc avec des conditions
    Par metheorn dans le forum Sybase
    Réponses: 1
    Dernier message: 19/05/2006, 18h38
  4. Réponses: 8
    Dernier message: 02/02/2006, 18h13
  5. [ADO/Access] Appel d’une requête avec des paramètres
    Par Taxenna dans le forum Bases de données
    Réponses: 1
    Dernier message: 07/12/2004, 14h58

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