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 :

Utiliser variable globale


Sujet :

Android

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 77
    Points : 34
    Points
    34
    Par défaut Utiliser variable globale
    bonjour,

    je souhaiterais réutiliser une variable acquéri dans une classe.

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.resultat);
            
            Bundle b=getIntent().getExtras();
            String Time= b.getString("Time");
            
          
            TextView Resultatfinal = ((TextView)this.findViewById(R.id.textView1));
            Resultatfinal.setText(Time);
            
    
           
           
    	}
    	public boolean onCreateOptionsMenu(Menu menu) {
    		menu.add(0,1000,0,"send to friend");
    		menu.add(0,1001,0,"send to author");
    		return super.onCreateOptionsMenu(menu);
    		}
    
    		public boolean onOptionsItemSelected(MenuItem item, String Time ) {
    			switch(item.getItemId()){
    			case 1000:
    				Intent SendSMS = new Intent(Resultat.this,SendSMS.class);
    				Bundle b=new Bundle();
    			 	b.putString("Time", Result);
    			 	SendSMS.putExtras(b);
    				startActivity(SendSMS);
    				break;
    			case 1001:
    				Intent SendEmail = new Intent(Resultat.this,SendMail.class);
    				startActivity(SendEmail);
    				break;
    			}
    			return super.onOptionsItemSelected(item);
    		}
    }
    comme vous pouvez le voir acqueri ma variable dans une première classe mais je n'arrive pas à la réutiliser dans une autre classe.

    merci de votre aide

  2. #2
    Membre habitué
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2010
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 108
    Points : 163
    Points
    163
    Par défaut
    je n'ai pas compris quelle variable tu souhaite récupérer?

    tu peux simplement la déclarer en "public static TYPE variable" dans ta classe "ma_classe"

    et la récupérer dans la seconde activité avec :

    ma_classe.variable

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 322
    Points : 494
    Points
    494
    Par défaut
    Bonjour,
    C'est vrai que ta question n'est pas très explicite.

    Si tu veux une variable globale, il faut utiliser la méthode de raph-68i avec le public static.

    Sinon si ta seconde classe est aussi une activité, tu peux le passer par le bundle comme tu l'as fait la première fois. Par contre si ce n'est pas une activité tu peux passer ta variable en paramètre du constructeur.

    Donnes nous plus de précisions pour qu'on puisse t'aider au mieux

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 77
    Points : 34
    Points
    34
    Par défaut
    c'est la variable "Time"(En gras) que j'ai dans un premier temps acqueri.

    Je souhaiterais pourvoir l'utiliser plus bas (voir sous-ligner dans le code).

    dsl pour l'expliquation

  5. #5
    Expert éminent sénior

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Points : 19 373
    Points
    19 373
    Par défaut
    Citation Envoyé par Phoenix2025 Voir le message
    c'est la variable "Time"(En gras) que j'ai dans un premier temps acqueri.

    Je souhaiterais pourvoir l'utiliser plus bas (voir sous-ligner dans le code).

    dsl pour l'expliquation
    Dans ce cas utilise la méthode static, et déclare la avant ta première méthode.
    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Je ne réponds pas aux questions techniques en MP.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 322
    Points : 494
    Points
    494
    Par défaut
    Même pas besoin d'utiliser une variable static vu qu'on reste dans la même classe.

    J'ai du mal à comprendre ce que tu as voulu faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public boolean onOptionsItemSelected(MenuItem item, String Time ) {
    			switch(item.getItemId()){
    			case 1000:
    				Intent SendSMS = new Intent(Resultat.this,SendSMS.class);
    				Bundle b=new Bundle();
    			 	b.putString("Time", Result);
    			 	SendSMS.putExtras(b);
    				startActivity(SendSMS);
    				break;
    Déjà ça , ça ne peut pas marcher car tu as modifié la signature de la méthode et donc elle ne sera plus appelée à la sélection d'un item.
    Et la variable Result, elle vient d'où ?

    Voilà une manière simple de faire

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    private String Time;
    public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.resultat);
     
            Bundle b=getIntent().getExtras();
            Time= b.getString("Time");
     
     
            TextView Resultatfinal = ((TextView)this.findViewById(R.id.textView1));
            Resultatfinal.setText(Time);
     
     
     
     
    	}
    	public boolean onCreateOptionsMenu(Menu menu) {
    		menu.add(0,1000,0,"send to friend");
    		menu.add(0,1001,0,"send to author");
    		return super.onCreateOptionsMenu(menu);
    		}
     
    		public boolean onOptionsItemSelected(MenuItem item) {
    			switch(item.getItemId()){
    			case 1000:
    				Intent SendSMS = new Intent(Resultat.this,SendSMS.class);
    				Bundle b=new Bundle();
    			 	b.putString("Time", Time);
    			 	SendSMS.putExtras(b);
    				startActivity(SendSMS);
    				break;
    			case 1001:
    				Intent SendEmail = new Intent(Resultat.this,SendMail.class);
    				startActivity(SendEmail);
    				break;
    			}
    			return super.onOptionsItemSelected(item);
    		}
    }

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 77
    Points : 34
    Points
    34
    Par défaut
    c'est la mon probleme c'est que je ne peux pas.
    elle provient d'une autre sous activite.

    et je ne sais pas comment je peux l'utiliser dans mon autre methode


    Ok merci je vais tenter ceci.

    merci, je cherchais totalement une autre voie

  8. #8
    Inscrit

    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
    Points : 892
    Points
    892
    Par défaut
    En attendant que tu puisse trouver une solution complète, je te suggère de bien vouloir respecter les convention de nommages en Java.

    Le nom d'une variable (sauf s'il n'est pas declarée static final) commence toujours par une lettre minuscule.

    Respecter la convention de codage...C'est important pour la lisibilité du code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TextView Resultatfinal = ((TextView)this.findViewById(R.id.textView1));
            Resultatfinal.setText(Time);
    En regardant ton code j'ai galéré grave pour comprendre les variables Time et ResultatFinal;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String timeString;
     TextView resultatfinalView = ((TextView)this.findViewById(R.id.textView1));
            resultatfinalView.setText(timeString);
    Pour plus d'information :
    http://www.oracle.com/technetwork/ja...nv-138413.html

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/01/2011, 12h07
  2. [CR 2008] Utilisation variables globales
    Par funfou dans le forum Formules
    Réponses: 3
    Dernier message: 01/02/2010, 15h08
  3. Réponses: 1
    Dernier message: 04/04/2008, 16h47
  4. Utilisation variable globales
    Par jason69 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 04/07/2007, 07h55
  5. Utilisation variable globale, extern...
    Par mamok dans le forum MFC
    Réponses: 3
    Dernier message: 29/03/2006, 10h50

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