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

Composants graphiques Android Discussion :

Récupérer variable textview pour création fichier


Sujet :

Composants graphiques Android

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 154
    Points : 87
    Points
    87
    Par défaut Récupérer variable textview pour création fichier
    Bonjour a tous, voila je veut créer un fichier au clique d'un bouton et je voudrait que ce fichier ai pour nom le texte rentrer dans un texte view,

    donc bon je récupère dans une variable mon texte entrer dans le textview

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            final EditText valeur;
     
            valeur = (EditText) findViewById (R.id.NameChef);
    String NameChef = valeur.getText().toString();
    et je met cette variable dans ce code ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mFile = new File(this.getExternalFilesDir(null),"sdcard"+NameChef+namefile);
    seulement voila a la création de mon fichier la variable NameChef est null donc je me retrouve avec un fichier nommé "sdcardnull.csv"

    alors voila je suis un vrais vrais novice dans la dev donc j'imagine bien que ma variable NameChef n'est remplis que après avoir été appeler pas ma variable mFile mais je ne sais pas comment faire pour quelle sois remplis avant?!?

    voici mon code complet:

    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    package ch.srvinfo.interfire.interfire;
     
    import android.app.Dialog;
    import android.app.TimePickerDialog;
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;
    import android.os.Environment;
    import android.support.design.widget.FloatingActionButton;
    import android.support.design.widget.Snackbar;
    import android.support.v4.app.DialogFragment;
    import android.support.v7.app.AppCompatActivity;
    import android.support.v7.widget.Toolbar;
    import android.text.format.DateFormat;
    import android.util.AttributeSet;
    import android.view.View;
    import android.widget.Button;
    import android.widget.DatePicker;
    import android.widget.EditText;
    import android.widget.TextView;
    import android.widget.TimePicker;
    import android.widget.Toast;
     
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.HashMap;
    import java.util.List;
     
    public class Inter extends AppCompatActivity {
     
     
     
     
     
       //public void Sauvegarde(View v) {
        //    EditText valeur = (EditText) this.findViewById(R.id.NameChef);
      //     String valStr = valeur.getText().toString();
    //}
        private EditText NameChef = null;
        private Button msave = null;
        String valStr = null;
        private String namefile = ".csv";
        private String userName = "doudidididididid;";
        private String userName2 = "Nom";
        private File mFile = null;
        private Button mWrite = null;
        private Button mRead = null;
     
     
     
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_inter);
            final EditText valeur;
            //NomChef = (EditText) findViewById(R.id.NameChef);
            //EditText valeur = (EditText) this.findViewById(R.id.NameChef);
            valeur = (EditText) findViewById (R.id.NameChef);
           //valeur.setOnClickListener(this);
            Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
            setSupportActionBar(toolbar);
     
            FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
            fab.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                            .setAction("Action", null).show();
                }
            });
            DatePicker mDatePicker = (DatePicker) findViewById(R.id.datePicker);
            mDatePicker.updateDate(mDatePicker.getYear(), 0, 1);
     
            TimePicker mTimePicker = (TimePicker) findViewById(R.id.timePicker);
            mTimePicker.setIs24HourView(true);
            mTimePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
                @Override
                public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
                    Toast.makeText(Inter.this, "Heure séléctioné: " + String.valueOf(hourOfDay) + ":" + String.valueOf(minute), Toast.LENGTH_SHORT).show();
                }
            });
     
     
            mFile = new File(this.getExternalFilesDir(null),"sdcard"+NameChef+namefile);
     
     
            mWrite = (Button) findViewById(R.id.Sauvegarde);
            mWrite.setOnClickListener(new View.OnClickListener() {
     
     
                public void onClick(View pView) {
     
     
                   String NameChef = valeur.getText().toString();
     
                    if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()))
                        Toast.makeText(Inter.this, NameChef, Toast.LENGTH_SHORT).show();
                    else
                        Toast.makeText(Inter.this, "pas ok : ", Toast.LENGTH_SHORT).show();
     
     
     
                    try {
                        // Flux interne
                        FileOutputStream output = openFileOutput(namefile, MODE_PRIVATE);
     
     
                        // On écrit dans le flux interne
                        output.write(NameChef.getBytes());
                        output.write(userName2.getBytes());
                        // output.write("cellule1,");
                        //output.write("cellule2");
     
                        output.flush();
                        output.close();
                        output=null;
     
                        //output.write(userName.getBytes());
     
                        if(output != null)
                            output.close();
     
     
     
                        // Si le fichier est lisible et qu'on peut écrire dedans
                        if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())
                                && !Environment.MEDIA_MOUNTED_READ_ONLY.equals(Environment.getExternalStorageState())) {
                            // On crée un nouveau fichier. Si le fichier existe déjà, il ne sera pas créé
     
                            mFile.createNewFile();
                            output = new FileOutputStream(mFile);
                            output.write(userName.getBytes());
                            output.flush();
                            output.write(userName2.getBytes());
                            if(output != null)
                                output.close();
                        }
                    } catch (FileNotFoundException e) {
                        e.printStackTrace();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            });
     
        }
     
     
     
     
     
     
     
    }
    merci beaucoup d'avance car la je patine...

  2. #2
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

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

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    Salut,

    Tu te retrouves avec ce nom de fichier parce que ton fichier n'est pas créé au clic du bouton mais plutôt lors du lancement du programme du fait que le code de la création de ce dernier soit mis dans la méthode onCreate() de l'activity. Déplace le code de la création du fichier dans le onClick() du bouton pour avoir le résultat escompté.

    Aussi une remarque, tu entremêles un peu trop tes codes. Ton code manque un tout petit peu de logique . Je pourrais te proposer ce petit algo :

    Quand l'utilisateur appuie sur le bouton write, suivre les étapes suivantes :

    1. Verifier si la carte mémoire est bel et bien montée. Si oui passer à l'étape 2. Sinon passer à l'étape 5
    2. Récupérer le text saisi pour constituer un nom de fichier
    3. Vérifier s'il existe un fichier portant le nom précédemment construit existe ou non. Si oui, ne pas récréer un fichier portant ce nom(de peur qu'on l'écrase) mais plutôt commencer l'écriture directement. Sinon, créer d'abord le fichier puis écrire dedans.
    4. Fermer le fichier ou le flux et passer à l'étape 6
    5. Affichier un message indiquant à l'utilisateur que la carte mémoire n'est pas montée.
    6. Fin de l'algo
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  3. #3
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 154
    Points : 87
    Points
    87
    Par défaut
    MasterMbg tu est décidément partout!

    alors après pleine de modification mon problème est résolut, c’était uniquement la structure de mon fichier qui était mal faite et ma variable n’était pas encore remplis au moment de l'appelle sur le mFile...!!

    donc problème résolut!

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

Discussions similaires

  1. Récupérer variable texte pour l'intégrer dans une image
    Par paradeeyes dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 18/10/2009, 18h01
  2. Réponses: 12
    Dernier message: 14/12/2008, 12h17
  3. Choix du repertoire pour création fichier csv
    Par edenyorke dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 02/07/2007, 10h45
  4. récupérer nom machine pour nommer fichier
    Par deepwrath dans le forum Linux
    Réponses: 1
    Dernier message: 19/04/2007, 22h54
  5. Réponses: 17
    Dernier message: 06/09/2006, 13h37

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