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 : comment les rendre actives ?


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2011
    Messages : 15
    Par défaut Les préférences : comment les rendre actives ?
    Bonjour,

    pour mon application, j'ai intégré un système de préférence ((jouer les sons, vibrations, et affichage des notifications), le but étant de rendre ces 3 préférences soient en ON ou soit en OFF).

    J'ai donc suivi pas mal de tutos etc et après avoir construit ce fichier XML :

    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
    <?xml version="1.0" encoding="utf-8"?>
     
    <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    	android:title="Préférences">
     
    	<PreferenceCategory android:title="Information sur l'utilisateur">
    		<EditTextPreference android:title="Lien vers le groupe"
    			android:key="linkgroupe" android:dialogTitle="Choix du groupe TP"
    			android:dialogMessage="Entrez l'url d'accès au fichier calendar de votre groupe commece ceci : http://gestionedt.emploisdutempssrc.net/edt/ical/SRC/(ici votre groupe TP exemples : SRC1A1, Com1, LPTAIS1)/basic.ics"
    			android:summary="Choisissez votre groupe TP" android:dialogIcon="@drawable/plus_24" />
     
    		<EditTextPreference android:title="Nom du groupe"
    			android:key="namegroupe" android:dialogTitle="Nom du groupe TP"
    			android:dialogMessage="Pour le bon fonctionnement de Notif'Me, veuillez rentrer le nom de votre groupe de la même manière que les exemples suivants et sans espaces"
    			android:summary="Entrez le nom de votre groupe" android:dialogIcon="@drawable/plus_24"
    			android:hint="exemples : SRC1B2, SRC2A1, Web1, Com2, LPTAIS1 ..." />
    	</PreferenceCategory>
     
    	<PreferenceCategory android:title="Gestion des préférences">
    		<CheckBoxPreference android:title="Jouer les sons"
    			android:key="sounds" android:summaryOn="Sons activés"
    			android:summaryOff="Mode silence" android:defaultValue="true" />
     
    		<CheckBoxPreference android:title="Vibrations"
    			android:key="vibrate" android:summaryOn="Mode vibreur"
    			android:summaryOff="Vibreur désactivé" android:defaultValue="true" />
     
    		<CheckBoxPreference android:title="Affichage des notifications"
    			android:key="notifications" android:summaryOn="Notifications activées"
    			android:summaryOff="Notifications désactivées" android:defaultValue="true" />
    	</PreferenceCategory>
     
    	<PreferenceCategory android:title="Informations">
     
    		<PreferenceScreen android:title="Version"
    			android:summary="1.0 beta">
    		</PreferenceScreen>
    		<PreferenceScreen android:title="Contact mail"
    			android:summary="alexiscap@gmail.com" android:key="email">
    			<!-- <intent android:action="org.projets4.notifme.EMAIL_ACCUWX" /> -->
    		</PreferenceScreen>
    		<PreferenceScreen android:title="Website"
    			android:summary="Accédez au site">
    			<intent android:data="http://gestionedt.emploisdutempssrc.net/"
    				android:action="android.intent.action.VIEW" />
    		</PreferenceScreen>
     
    	</PreferenceCategory>
     
    </PreferenceScreen>
    et cette activity (qui n'est pas l'activité principale bien entendu) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    package org.projets4.notifme;
     
    import android.os.Bundle;
    import android.preference.PreferenceActivity;
     
    public class Preference extends PreferenceActivity {
     
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            addPreferencesFromResource(R.xml.preference);
        }
    }
    Je ne comprends pas du tout comment rendre active ces préférences (j'ai déjà la classe pour gérer les notifications ainsi que 2 boutons qui me permettent de tester ces notifs en en créant une et en la supprimant). C'est à dire que lorsqu'une notification est reçue, qu'elle soit entièrement silencieuse si les vibrations et sons ont été décochés, ou seulement une vibration si il n'y a que la préférence vibration cochée...

    Quelqu'un pourrait m'éclairer sur cette partie qui est donc essentielle pour les préférences ?

  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,

    Je ne comprends pas du tout comment rendre active ces préférences
    Si je comprends bien tu aimerais mettre à jour les valeurs dans tes préférences ?

    Pour cela

    Récupères tes settings
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);
    Du setting tu récupères l'editor
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SharedPreferences.Editor editor = settings.edit();
    Tu met à jour la clé (préférences) avec la nouvelle valeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    editor.put...(String, value)
    Tu commit:
    les préférences ce mettront à jour automatiquement.

    Pas besoin d'être dans une PreferencesActivity pour appeller ce bout de code.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 50
    Par défaut
    As-tu déjà une classe qui implémente un "listener" de tes préférences ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Class Truc implements OnSharedPreferenceChangeListener
    puis un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SharedPreferences settings = preferenceManager.getDefaultSharedPreferences(this);
    settings.registerOnSharedPreferenceChangeListener(this);
    Avec bien entendu un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @Override
    	public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
    			String key) {
    		// TODO Auto-generated method stub
    		int truc = sharedPreferences.getString("truc", "un truc");		
    	}
    ?

Discussions similaires

  1. Réponses: 6
    Dernier message: 11/07/2013, 12h04
  2. [rolap/molap/holap] Comment les distinguer et les utiliser ?
    Par Melvine dans le forum Conception/Modélisation
    Réponses: 7
    Dernier message: 18/03/2008, 23h03
  3. Réponses: 2
    Dernier message: 22/08/2007, 12h46
  4. [URL]comment les construire pour les images?
    Par fabszn dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 12/09/2006, 14h10

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