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 de récupération d'une classe dans une activité


Sujet :

Android

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 39
    Points : 14
    Points
    14
    Par défaut Problème de récupération d'une classe dans une activité
    Bonjour,

    Mon problème est:
    J'aimerais récupérer les valeurs de mes variables (celle-ci ce trouve dans une classe) dans mon activité afin de pouvoir les afficher.


    Voici la classe qui contient mes variables
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    package com.tutos;
     
    public class EnregistrementDefautCapteur 
    {
    	private String Heur="0";
    	private String Cat="0";
    	private String NomCapt="0";
    	private int Val=0;
    	private String Refresh="valide";
     
    	public EnregistrementDefautCapteur() 
    	{
    		// TODO Auto-generated constructor stub
    	}
     
    	public String getHeur()
    	{
    		return Heur;
    	}
     
    	public String getCat()
    	{
    		return Cat;
    	}
     
    	public String getNomCapt()
    	{
    		return NomCapt;
    	}
     
    	public int getVal()
    	{
    		return Val;
    	}
     
    	public String getRefresh()
    	{
    		return Refresh;
    	}
     
    	//*************   MUTATEURS   *************
     
    	public void setHeur(String Temp)
    	{
    		Temp=Heur;
    	}
     
    	public void setCat(String Categorie)
    	{
    		Categorie=Cat;
    	}
     
    	public void setNomCapt(String NomCapteur)
    	{
    		NomCapteur=NomCapt;
    	}
     
    	public void setVal(int Valeur)
    	{
    		Valeur=Val;
    	}
     
    	public void setRefresh(String Rafraichissement)
    	{
    		Rafraichissement=Refresh;
    	}
     
     
    }
    Voici ma classe principal ou je crée un tableau de type EnregistrementDefautCapteur et qui contient 70 cases.

    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
     
    public class AvionSolaire
    {
         public EnregistrementDefautCapteur[] TabDefCapt = new EnregistrementDefautCapteur[69];
     
        protected void onCreate(Bundle savedInstanceState) 
    	{
    		super.onCreate(savedInstanceState); // permet d'afficher l'activity
    		super.setContentView(R.layout.viewpager); // permet d'afficher le fragement dans l'activity
     
     
    		for (int i=0;i<69;i++)
    		{ 
    	    	   TabDefCapt[i]=new EnregistrementDefautCapteur();
    	    	   Log.w("Class p.....","Tab"+TabDefCapt[i].getHeur());
    	    }
         }
    }
    et voici l'activité où je voudrais réceptionner les valeurs contenu dans ma 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
     
    public class Defaut_Capteur extends Activity 
    {
     
    	public AvionSolaire avionSolaire = AvionSolaire.getInstance();
    	//EnregistrementDefautCapteur[] TableauDefautCapteur = new EnregistrementDefautCapteur[69];
     
    	public Defaut_Capteur()
    	{
    	}
     
    	@Override
    	protected void onCreate(Bundle savedInstanceState) 
    	{
                 for (int i = 0; i < 69; i++) 
    	    {
    	       	Log.e("Def Capt", "dans la boucle for "+i);
    	       	Log.e("Tab", "Heur = "+TableauDefautCapteur[i].getHeur());
     
    	    }
    }
    Dans le log.w qui ce trouve dans ma classe principal je récupère bien la valeur de ma variables "heur"
    mais dans le log.e qui ce trouve dans la class final, l'application plante.l'erreur ce produit sur cette ligne

    Voici le log.cat
    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
     
    05-02 15:34:10.282: E/AndroidRuntime(8103): FATAL EXCEPTION: main
    05-02 15:34:10.282: E/AndroidRuntime(8103): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tutos/com.tutos.Defaut_Capteur}: java.lang.NullPointerException
    05-02 15:34:10.282: E/AndroidRuntime(8103): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
    05-02 15:34:10.282: E/AndroidRuntime(8103): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
    05-02 15:34:10.282: E/AndroidRuntime(8103): 	at android.app.ActivityThread.access$600(ActivityThread.java:123)
    05-02 15:34:10.282: E/AndroidRuntime(8103): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
    05-02 15:34:10.282: E/AndroidRuntime(8103): 	at android.os.Handler.dispatchMessage(Handler.java:99)
    05-02 15:34:10.282: E/AndroidRuntime(8103): 	at android.os.Looper.loop(Looper.java:137)
    05-02 15:34:10.282: E/AndroidRuntime(8103): 	at android.app.ActivityThread.main(ActivityThread.java:4424)
    05-02 15:34:10.282: E/AndroidRuntime(8103): 	at java.lang.reflect.Method.invokeNative(Native Method)
    05-02 15:34:10.282: E/AndroidRuntime(8103): 	at java.lang.reflect.Method.invoke(Method.java:511)
    05-02 15:34:10.282: E/AndroidRuntime(8103): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
    05-02 15:34:10.282: E/AndroidRuntime(8103): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
    05-02 15:34:10.282: E/AndroidRuntime(8103): 	at dalvik.system.NativeStart.main(Native Method)
    05-02 15:34:10.282: E/AndroidRuntime(8103): Caused by: java.lang.NullPointerException
    05-02 15:34:10.282: E/AndroidRuntime(8103): 	at com.tutos.Defaut_Capteur.onCreate(Defaut_Capteur.java:73)
    05-02 15:34:10.282: E/AndroidRuntime(8103): 	at android.app.Activity.performCreate(Activity.java:4465)
    05-02 15:34:10.282: E/AndroidRuntime(8103): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
    05-02 15:34:10.282: E/AndroidRuntime(8103): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
    05-02 15:34:10.282: E/AndroidRuntime(8103): 	... 11 more
    J’essayerai bien de passer ma class a l'aide d'intent mais je sais pas comment passer une classe en paramètre

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 115
    Points : 106
    Points
    106
    Par défaut
    La variable "TableauDefautCapteur[]" n'existe pas tu las mise en commentaire.

    Si tu veux que sa fonctionne remplace par:
    avionSolaire.TabDefCapt[i].getHeur();

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 39
    Points : 14
    Points
    14
    Par défaut
    Erreur de ma part

    J'avais déjà tenter cette façon kalagan34

    Voici le log cat
    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
     
    05-03 17:40:12.792: E/AndroidRuntime(1566): FATAL EXCEPTION: main
    05-03 17:40:12.792: E/AndroidRuntime(1566): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tutos/com.tutos.Defaut_Capteur}: java.lang.NullPointerException
    05-03 17:40:12.792: E/AndroidRuntime(1566): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
    05-03 17:40:12.792: E/AndroidRuntime(1566): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
    05-03 17:40:12.792: E/AndroidRuntime(1566): 	at android.app.ActivityThread.access$600(ActivityThread.java:123)
    05-03 17:40:12.792: E/AndroidRuntime(1566): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
    05-03 17:40:12.792: E/AndroidRuntime(1566): 	at android.os.Handler.dispatchMessage(Handler.java:99)
    05-03 17:40:12.792: E/AndroidRuntime(1566): 	at android.os.Looper.loop(Looper.java:137)
    05-03 17:40:12.792: E/AndroidRuntime(1566): 	at android.app.ActivityThread.main(ActivityThread.java:4424)
    05-03 17:40:12.792: E/AndroidRuntime(1566): 	at java.lang.reflect.Method.invokeNative(Native Method)
    05-03 17:40:12.792: E/AndroidRuntime(1566): 	at java.lang.reflect.Method.invoke(Method.java:511)
    05-03 17:40:12.792: E/AndroidRuntime(1566): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
    05-03 17:40:12.792: E/AndroidRuntime(1566): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
    05-03 17:40:12.792: E/AndroidRuntime(1566): 	at dalvik.system.NativeStart.main(Native Method)
    05-03 17:40:12.792: E/AndroidRuntime(1566): Caused by: java.lang.NullPointerException
    05-03 17:40:12.792: E/AndroidRuntime(1566): 	at com.tutos.Defaut_Capteur.onCreate(Defaut_Capteur.java:73)
    05-03 17:40:12.792: E/AndroidRuntime(1566): 	at android.app.Activity.performCreate(Activity.java:4465)
    05-03 17:40:12.792: E/AndroidRuntime(1566): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
    05-03 17:40:12.792: E/AndroidRuntime(1566): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
    05-03 17:40:12.792: E/AndroidRuntime(1566): 	... 11 more
    et le code java qui est lié à cette erreur
    classe qui me permet d'afficher mes valeurs
    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
     
    public class Defaut_Capteur extends Activity 
    {
            public AvionSolaire avionSolaire = AvionSolaire.getInstance();
    	EnregistrementDefautCapteur[] TableauDefautCapteur = new EnregistrementDefautCapteur[69];
     
    	public Defaut_Capteur()
    	{
    	}
     
    	@Override
    	protected void onCreate(Bundle savedInstanceState) 
    	{
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.defaut_capteur);
    		//Bundle objetbunble  = this.getIntent().getExtras();
    		//affichageDonnees = this.getIntent().getStringExtra("donneesErrone");
     
     
        	Log.e("Def Capt", "debut");
    	    for (int i = 0; i < 69; i++) 
    	    {
    	       	Log.e("Def Capt", "dans la boucle for "+i);
    	       	Log.e("Tab", "Heur = "+avionSolaire.TabDefCapt[i].getHeur());
     
     
     
    	    }
     
     
    	}
    Merci de l'aide que vous pouvez m'apporter.

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 115
    Points : 106
    Points
    106
    Par défaut
    Tu est sur que l'objet avionSolaire n'est pas null ?!

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 39
    Points : 14
    Points
    14
    Par défaut
    J'ai résolu le problème d'une autre manière.

    J'ai utilise ArrayList que je construis dans l'activité principal AvionSolaire
    je l'envoi a la class DefautCapteur par le biais d'un intent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CODE_DE_MON_ACTIVITE=1;
    		affichageDefautCapteur=0;
    		Bundle objetbunble = new Bundle();
    		objetbunble.putStringArrayList("donneesErrone", arrListDefautCapteur);
    		Intent intent = new Intent(AvionSolaire.this, Defaut_Capteur.class);
    		intent.putExtras(objetbunble);
    		startActivityForResult(intent, CODE_DE_MON_ACTIVITE);
    je la récupère dans ma classe DefautCapteur et je viens effectué l'affichage souhaite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private ArrayList<String> affichageDonnees= this.getIntent().getStringArrayListExtra("donneesErrone");

  6. #6
    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 : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Histoire d'éviter les sources d'erreurs futures, je te suggères fortement d'externaliser la valeur "donneesErrone" dans une constante publique appelée des deux coté.

    EDIT : et vu le code, de déplacer le getIntent() dans le onResume.
    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. Eval d'une propriété d'une classe dans une classe
    Par bizet dans le forum ASP.NET
    Réponses: 4
    Dernier message: 28/10/2008, 09h43
  2. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  3. [POO] Une Classe dans une Classe. C'est possible?
    Par FrankOVD dans le forum Langage
    Réponses: 2
    Dernier message: 18/05/2006, 22h02
  4. [POO] Utilisation d'une classe dans une classe !
    Par Okinou dans le forum Langage
    Réponses: 3
    Dernier message: 16/02/2006, 14h34
  5. Une classe dans une classe...
    Par Baquardie dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 30/09/2005, 19h36

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