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 :

Préférence à l'installation


Sujet :

Android

  1. #1
    Membre régulier
    Homme Profil pro
    Software Engineer
    Inscrit en
    Février 2013
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 139
    Points : 94
    Points
    94
    Par défaut Préférence à l'installation
    Bonjour,

    Je souhaite faire apparaitre une alertDialog (ça je sais faire) une unique fois lors de la première ouverture de l'application (ça je sais pas trop comment), auriez-vous une idée ? Je pense aux preference mais je bloque sur la méthode d'utilisation.

  2. #2
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 149
    Points : 196
    Points
    196
    Par défaut
    Bonjour,

    Tu pourrais demander à ton programme d'aller ouvrir un fichier qui n'existe pas :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    try {
    				FileInputStream in = openFileInput("fichier.txt");
    				InputStreamReader isr = new InputStreamReader(in); 
    				isr.read(inputBuffer2);  
    				chaine = new String(inputBuffer);
    				in.close(); 
    				}
    			catch (FileNotFoundException e) {
    				e.printStackTrace();
    // écrire ton code
    			}
    Comme il ne le trouvera pas il va passer dans la section catch et la tu pourra demander qu'il affiche ton alertDialog.
    Ensuite tu ajoute une commande pour écrire un texte dans ton fichier (et par la même occasion le créer) :

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    try {
    FileOutputStream out = openFileOutput("fichier.txt", Context.MODE_PRIVATE);
    out.write("0".getBytes());
     out.close();
    }
    catch (java.io.IOException e2) {
    	e2.printStackTrace();
    	}

    Ainsi au prochain lancement lorsqu'il ouvrira le fichier il ne passera pas par la section catch et donc ne relancera pas ton alertDialog.

    En espérant avoir pu t'aider.

  3. #3
    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
    Ou plus simplement : passer par les SharedPreferences, piste qu'avait le créateur du sujet.

    Au lancement de l'application, tenter de récupérer une valeur :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SharedPreferences preferences = getSharedPreferences(CLEF_PREFERENCES, MODE_OUVERTURE);
    boolean maSuperValeur = preferences.getBoolean(CLEF_MA_VALEUR, false);
     
    if (maSuperValeur) {
    	// traitement premier lancement
     
    	// Enregistrement dans les SharedPreferences pour que la valeur persiste
    	SharedPreferences.Editor editor = preferences.getEditor();
    	editor.putBoolean(CLEF_MA_VALEUR);
    	editor.commit();
    }

    Documentation : https://developer.android.com/refere...eferences.html

    Concernant le code proposé :
    Les exceptions sont un mécanisme coûteux et ne sont absolument pas fait pour ce genre de chose.
    Les flux ne sont pas fermés en cas d'exception. S'intéresser aux blocs try/finally, par exemple. Au minimum : mettre un bloc finally pour fermer proprement les ressources ouvertes.
    Les erreurs ne sont pas affichées à la manière d'Android. printStackTrace, on ne sait pas où ça peut atterrir. Il faut lui préférer Log.e(TAG, "mon message", exception); pour être sûr que ça arrive dans le LogCat Android.

  4. #4
    Membre régulier
    Homme Profil pro
    Software Engineer
    Inscrit en
    Février 2013
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 139
    Points : 94
    Points
    94
    Par défaut
    Merci a vous deux je vais tester la methode d'Hizin.

  5. #5
    Membre régulier
    Homme Profil pro
    Software Engineer
    Inscrit en
    Février 2013
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 139
    Points : 94
    Points
    94
    Par défaut
    Ok merci beaucoup Hizin ca marche nickel juste une petit erreur de ton code que je remet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SharedPreferences preferences = getSharedPreferences(CLEF_PREFERENCES, MODE_OUVERTURE);
    boolean maSuperValeur = preferences.getBoolean(CLEF_MA_VALEUR, false);
     
    if (maSuperValeur==false) {
    	// traitement premier lancement
     
    	// Enregistrement dans les SharedPreferences pour que la valeur persiste
    	SharedPreferences.Editor editor = preferences.getEditor();
    	editor.putBoolean(CLEF_MA_VALEUR,true);
    	editor.commit();
    }
    Voila merci encore.

  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
    J'ai oublié de préciser : "code non-testé"

    Merci pour la version corrigée

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

Discussions similaires

  1. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  2. Installer ses composants
    Par Geronimo dans le forum C++Builder
    Réponses: 14
    Dernier message: 18/06/2002, 14h51
  3. Réponses: 19
    Dernier message: 24/05/2002, 16h36
  4. Réponses: 7
    Dernier message: 01/05/2002, 20h23
  5. [Kylix] Comment installer Kylix sur Mandrake 8.2 (page2)
    Par Philippe LE PONT dans le forum EDI
    Réponses: 3
    Dernier message: 01/05/2002, 12h52

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