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 :

Problème avec Intent


Sujet :

Android

  1. #1
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut Problème avec Intent
    Bonjour à toutes et à tous,

    Je souhaite passer des données d'une fenêtre à l'autre. Je pars de ma fenêtre 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
    public class MainActivity extends Activity implements SensorEventListener, LocationListener{
     
     
    	final String MonNom = null;
    	final String MonPrenom = null;
    	final String MonAge = null;
     
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    				btn2 = (Button)findViewById(R.id.Btn2);
     
    		btn2.setOnClickListener(new View.OnClickListener() {
    			@Override
    			public void onClick(View v) {
     
    				Intent intent = new Intent(MainActivity.this, Fct_GPS.class);
    				intent.putExtra(MonNom, "XXXXX");
    				intent.putExtra(MonPrenom, "YYYYY");
    				intent.putExtra(MonAge, "ZZZZZ");
    			}
    		});
    et j'arrive dans ma fenêtre secondaire :

    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
    public class Fct_GPS extends Activity{
     
    	final String MonNom = null;
    	final String MonPrenom = null;
    	TextView leNom;
    	TextView lePrenom;
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.fonction_gps);
    		Intent intent = getIntent();
    		leNom = (TextView)findViewById(R.id.LeNom);
    		lePrenom = (TextView)findViewById(R.id.LePrenom);
    		if (intent != null) {
    			lePrenom.setText(intent.getStringExtra(MonPrenom));
    			leNom.setText(intent.getStringExtra(MonNom));
    		}
     
        }
    }
    Ce que j'obtiens comme résultat dans "leNom" et "lePrenom" est la dernière valeur envoyée par la fenêtre principale, c'est-à-dire ZZZZ.

    Qu'est-ce que j'ai raté ?

    Merci de votre aide.

    Pierre

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 262
    Points : 157
    Points
    157
    Par défaut
    pour ton problème , c'est à cause que tu n'as pas initialisé tes variable
    de type String.comme ils référencent null .

    essaye de donner un nom à tes variables.

  3. #3
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Merci momedalhouma,

    J'ai initialisé mes variables à une même valeur danns chacune des activités et ça fonctionne. Je ne comprends pas pourquoi, mais ça fonctionne !

    Cordialement.

    Pierre

  4. #4
    Membre confirmé
    Homme Profil pro
    Ed Nat
    Inscrit en
    Janvier 2013
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ed Nat
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 325
    Points : 559
    Points
    559
    Par défaut
    Bonjour,
    juste pour l'explication...
    Au démarrage d'une de l'activité Fct_GPS à partir de MainActivity, tu peux passer une ou plusieurs variables, en associant un nom (nomVar) à leur valeur (value)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Intent intent = new Intent(MainActivity.this, Fct_GPS.class);
    intent.putExtra("nomVar", value);
    Si tu veux récupérer cette valeur dans Fct_GPS , ce sera par le nom que tu lui a associé précédemment : nomVar

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String value=intent.getStringExtra("nomVar");
    retourne value dans Fct_GPS

    Comme l'a justement dit momedalhouma, ça marchait beaucoup moins bien avec des "nomVar" nuls

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

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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