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 préférences sous Android


Sujet :

Android

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 277
    Par défaut Les préférences sous Android
    Bonjour ,

    étant assez débutant sous android , je ne sais pas comment gerer les préférences dans mon application.
    J'ai réussi à créer mon activité préférence , et je vois bien le menu de mes préférences s'afficher pour mon application(lorsque je clique sur mon bouton preference). Hors ma question est comment je fais pour l'implémenter dans mon Code JAVA , qui est dans mon autre activité (quand je clique sur mon bouton exercice qui est censé appliquer ma préférence , genre me tirer un nombre comprit entre 0 et la valeur rentrée dans mon TextEdit préférence.)

    voici mon code dans mon activité préférence Dans XML:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" encoding="utf-8"?>
    <PreferenceScreen xmlns:android ="http://schemas.android.com/apk/res/android">
     
     <PreferenceCategory android:title="Préférences" >
     
            <EditTextPreference
                android:key="nbAleatoire"
                android:summary="Entrez un nombre entre 10 et 100"
                android:title="Ecart de nombre" >
            </EditTextPreference>
     
    </PreferenceCategory>
    </PreferenceScreen>
    Et mon code JAVA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class PreferencesActivity extends PreferenceActivity
    {
    	public void onCreate (Bundle state)
    	{
    		super.onCreate (state);
    		addPreferencesFromResource (R.layout.preferences);		
    	}
    }

  2. #2
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Bonjour,

    Hors ma question est comment je fais pour l'implémenter dans mon Code JAVA , qui est dans mon autre activité (quand je clique sur mon bouton exercice qui est censé appliquer ma préférence , genre me tirer un nombre comprit entre 0 et la valeur rentrée dans mon TextEdit préférence.)
    J'ai pas entièrement compris la question.

    Si tu veux avoir une valeur par défaut depuis le xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            <EditTextPreference
                android:key="nbAleatoire"
                android:summary="Entrez un nombre entre 10 et 100"
                android:title="Ecart de nombre"
                android:defaultValue="0" >
            </EditTextPreference>
    Si après tu veux modifier cette valeur depuis ton code,c'est simple il te suffit de faire un set sur la clé correspondante.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class PreferenceExample extends PreferenceActivity{
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            addPreferencesFromResource(R.xml.preference);
            SharedPreferences _sharedPreferences  = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
     
    SharedPreferences.Editor editor = _sharedPreferences  .edit();
    String random_value = String.ValueOf((int) (new Random().nextInt(100)));
    editor.putString("nbAleatoire", random_value);
        }
    Tu peux le faire également lors du click sur cet item et non lors de la création des préférences.

    A toi de voir

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 277
    Par défaut
    Bonjour et merci pour ta réponse.

    En fait j'ai déjà une class java qui se charge de faire le random du nombre aléatoire , moi ce que je veux , c'est que lorsque :

    - l'utilisateur clique sur le bouton préférence
    - il clique sur le menu ecart de nombre
    - de là un champ de saisie apparait
    - il selectionne le chiffre MAX

    Ce chiffre MAX , je le récupère dans ma class qui gère le random mais que du coup , si par exemple le chiffre 20 est rentrée , et bien mon random va de 0 à 20.

    Mon soucis principal c'est que je ne sais pas du tout comment récupérer la valeur de ce champ , dans le code de ma class JAVA, ( qui est mon activité principale). Je joins un screen pour aider à éclaircir
    Images attachées Images attachées  

  4. #4
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Mon soucis principal c'est que je ne sais pas du tout comment récupérer la valeur de ce champ , dans le code de ma class JAVA, ( qui est mon activité principale). Je joins un screen pour aider à éclaircir
    ok j'avais pas du tout compris

    en fait tu veux juste savoir comment on récupère la valeur saisie dans une EditTextPreference.

    A partir de n'importe quel endroit de ton code tu peux appeler ce code pour récupérer la valeur max de ton edit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     SharedPreferences _sharedPreferences  = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
     
    int value_max = _sharedPreferences.getInt("nbAleatoire", 100);
    Après a toi de bien positionner ce code (dans le onResume par exemple).
    avec la variable value_max, tu refais ton random.

    Tu peux également jouer sur sur les listener depuis ta PreferenceActivity, pour intercepter tout changement et être de suite réactif.
    http://developer.android.com/referen...eListener.html

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 277
    Par défaut
    D'accord j'ai comprit au moins pour ce qui est de la récupération du contenu de la variable value. Par contre le code comme celui-ci ne passe pas . Il me mets une erreur à propos du cast en int.

    -Un champ edit serait t'il purement une chaine de caractère ?.

    - Et pour récupérer la valeur de value ok , pour quand je suis dans la class PreferencesActivity , Mais moi le but c'est de la récupérer vers mon autre class Exercice dans laquelle je fais mon random. Et que je souhaite faire random(0,value);

    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
    import android.content.SharedPreferences;
    import android.os.Bundle;
    import android.preference.PreferenceActivity;
    import android.preference.PreferenceManager;
    import android.widget.Toast;
     
    public class PreferencesActivity extends PreferenceActivity
    {
    	int value = 0;
    	public void onCreate (Bundle state)
    	{
    		super.onCreate (state);
    		addPreferencesFromResource (R.layout.preferences);
            SharedPreferences manager  = PreferenceManager.getDefaultSharedPreferences(this);
            value = manager.getInt("nbAleatoire", 100);
     
           Toast.makeText(this, value,Toast.LENGTH_LONG).show(); 
     
    	}
     
    }

  6. #6
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Et pour récupérer la valeur de value ok , pour quand je suis dans la class PreferencesActivity , Mais moi le but c'est de la récupérer vers mon autre class Exercice dans laquelle je fais mon random. Et que je souhaite faire random(0,value);
    ce code marche pour toutes tes activity de ton application, même a partir de ta classe Exercice.

    -Un champ edit serait t'il purement une chaine de caractère ?.
    Yep après réflexion il me semble.

    Récupère la string et transforme la en entier .

  7. #7
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 277
    Par défaut
    oki ;-) . Donc je n'ai pas besoin de passer par un accesseur ? Je peux mettre le code que tu m'as transmit dans ma classe exercice . merci bien l'ami ;-) tu es un chef ihih .

    Ps: si tu as des questions en réseau ou système linux un jour , appel mi lol ;-)

  8. #8
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 277
    Par défaut
    Je te remercie grace à toi j'ai comprit , et mon application fonctionne enfin avec des préférences.

    C'est cool de dormir et de se réveiller moins bête le lendemain lol.

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

Discussions similaires

  1. Réponses: 22
    Dernier message: 29/06/2011, 08h36
  2. [Tutoriel]: Les services sous Android
    Par Djug dans le forum Android
    Réponses: 0
    Dernier message: 26/05/2011, 11h58
  3. Réponses: 7
    Dernier message: 26/01/2011, 11h46

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