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 :

Les getters ne fonctionnent pas


Sujet :

Android

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 38
    Points : 18
    Points
    18
    Par défaut Les getters ne fonctionnent pas
    Bonjour à tous,

    J'ai un problème qui vas certainement vous paraître super simple mais moi je bloque.
    Je développe sous android un espèce de traker maison, j'ai donc une classe "SaveFiles"qui récupère la variable d'un editText afin de créer un fichier dans lequel je veux enregistrer les coordonnées GPS. La deuxième "BroadcastCoord" doit quand à elle récupérer le chemin et le nom du fichier avec la méthode "getDirPath" afin d'y sauver les coordonnées. Le soucis est que celle-ci ne récupère rien en effet les getters reste null.
    Si quelques âmes charitable passent dans le coin ... merci

    La Classe SaveFiles
    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
    71
    72
    73
    74
    package gpsbom.plectre.com.gpsbom;
     
    import android.os.Environment;
    import android.util.Log;
    import java.io.File;
    import java.io.IOException;
     
     
    /**
     * Created by plectre on 09/03/17
     * Classe de Gestion de dossier
     * E//storage/emulated/0/GpsÂ*Bom
     */
     
    public class SaveFiles {
     
        private String path;
        private String DIR = "/Gps Bom";
        private File fDossier;
        private File fichier;
        private String filePath;
        private String fName;
        private Boolean isCreate = false;
     
        public String getfFilePath(){return filePath;}
        public String getfName(){return fName;}
        public Boolean getIsCreate() {return isCreate;}
     
        public void testCarteSd(String pName) {
            // Test Si la carte est presente
            if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
                    Log.i("la carte", "presente !");
                // On recupére le chemin du Dossier
                    path = Environment.getExternalStorageDirectory().getPath();
                    //Log.e("path..", path);
     
                // Appel method de création du dossier
                    createDir(pName);
                    return;
            } else {
     
                Log.e("Carte", "absente");
            }
        }
     
        // Création du Dossier GpsBom
        public void createDir(String pName) {
            fDossier = new File(path + DIR);
            this.filePath = String.valueOf(fDossier);
            this.fName = pName;
            fichier = new File(fDossier + "/"+fName+".txt");
            if (!fDossier.exists()) {
                fDossier.mkdir();
                Log.i("Dossier créer", "");
            }
            if (!fichier.exists()) {
                try {
                    fichier.createNewFile();
                    Log.e(pName, "Créer");
                    isCreate = true;
                } catch (IOException e) {
                    e.printStackTrace();
                }
            } else {
                Log.e(filePath, "Existe déjÃ*");
                return;
            }
                filePath = String.valueOf(fDossier);
                //Log.e(DIR, "Existe");
                Log.e(String.valueOf(fDossier), "fDossier");
                Log.e(fName, "fName");
     
        }
    }
    La Classe BroacastCoord
    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
    package gpsbom.plectre.com.gpsbom;
     
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.util.Log;
    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;
     
    /**
     * Created by plectre on 09/03/17.
     * Classe qui récupére les position et se charge de les enregistrer sur
     * la mémoire Externe SD du device
     */
     
    public class BroadcastCoord extends BroadcastReceiver {
        private String lat;
        private String lon;
        private String fDossier;
        private String fPath;
        //private String path = Environment.getExternalStorageDirectory().getPath();
        private String NEW_LINE = System.lineSeparator();
     
     
     
        // On recupere nom du dossier créer dans la classe SaveFile()
        public void getDirPath() {
            SaveFiles sv = new SaveFiles();
            this.fDossier = sv.getfFilePath();
            this.fPath = sv.getfName();
            Log.i(fDossier, "fDossier");
            Log.i(fPath, "fName");
        }
     
        // Abonnement au Broadcast
        public void onReceive(Context context, Intent intent) {
     
            // Récuperation des coorddonnées envoyé par GpsService
            lat = intent.getStringExtra("lat");
            lon = intent.getStringExtra("lon");
     
            // Si le fichier est sauvegarder on enregistre les
            // cocrdonnées
            saveCoor(lat, lon);
        }
     
        public void saveCoor(String lat, String lon) {
            getDirPath();
            Log.i("Save latitude", lat);
            Log.i("Save longitude", lon);
     
            File file = new File(fDossier,fPath+" .txt");
                try {
                    FileWriter output = new FileWriter(file, true);
                    output.write(" , ");
                    output.append(lon);
                    output.write(NEW_LINE);
     
                    Log.i("Enregistrement Ok",String.valueOf(fPath));
                    output.close();
                } catch (IOException ex){
                    Log.e("Enregistrement fail",String.valueOf(ex));
                }
        }
    }

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 38
    Points : 18
    Points
    18
    Par défaut
    Salut, en fait j'ai passé les variables en static et ça a l'air de fonctionner pas trop mal

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 77
    Points : 142
    Points
    142
    Par défaut
    En utilisant des variables static, il y a un risque que la valeur ne soit pas correcte.
    Si il existe plusieurs instances de la même class, alors la variable retournera la même valeur pour les deux instances.

    Si les getters retournent null, est ce que cela serait dû au fait que après l'instanciation (new SaveFiles()) les méthodes ou les variables reçoivent une valeur ne sont pas appelées?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SaveFiles sv = new SaveFiles();
    this.fDossier = sv.getfFilePath();
    this.fPath = sv.getfName();
    Ici il semble manquer quelque chose entre la première et deuxième ligne.
    Car par defaut les variable declarer dans une class sont null.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 38
    Points : 18
    Points
    18
    Par défaut
    T'as certainement raison mais de toute façon je les réutilisent pas. Il se peut aussi que lorsque j'appelle le service elle se réinitialisent. En tout cas merci pour ta reponse

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

Discussions similaires

  1. [Flash 8]les liens ne fonctionnent pas ?
    Par benedict17 dans le forum Flash
    Réponses: 1
    Dernier message: 28/03/2008, 11h35
  2. Réponses: 3
    Dernier message: 05/02/2008, 10h03
  3. [2008] "Gérer les utilisateurs" ne fonctionne pas
    Par gifffftane dans le forum Mandriva / Mageia
    Réponses: 3
    Dernier message: 06/12/2007, 17h22
  4. les liens ne fonctionnent pas
    Par knopflerized dans le forum Dreamweaver
    Réponses: 3
    Dernier message: 29/10/2007, 18h11
  5. Les EL ne fonctionnent pas !
    Par tequila13 dans le forum Wildfly/JBoss
    Réponses: 4
    Dernier message: 16/06/2007, 21h26

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