2010-07-08 7 views
1

J'ai ajouté un bouton de sourdine à un menu de mon application et je me demande s'il est possible de stocker la dernière préférence de l'utilisateur, qu'il soit muet ou non muet, lorsqu'il rouvre l'application.Enregistrer la préférence d'application Android

Voici le code que je utilise pour la mise en sourdine ou umute:

public void isMute() { 

     if(mIsMute){  
      mAm.setStreamMute(AudioManager.STREAM_MUSIC, false); 
      mIsMute = false; 

     }else{ 
      mAm.setStreamMute(AudioManager.STREAM_MUSIC, true); 
      mIsMute = true; 
     } 
    } 

Répondre

1

Utilisez SharedPreferences pour stocker l'état. Lisez-le lorsque l'application démarre et définissez l'état actuel.

J'ai modifié un petit exemple de android documentation

public class Calc extends Activity { 
    public static final String PREFS_NAME = "MyPrefsFile"; 

    @Override 
    protected void onCreate(Bundle state){   
     super.onCreate(state); 
     . . . 

     // Restore preferences 
     SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
     mIsMute = settings.getBoolean("IsMute", false); 
     isMute(); 
    } 

    @Override 
    protected void onStop(){ 
     super.onStop(); 

     // We need an Editor object to make preference changes. 
     // All objects are from android.context.Context 
     SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
     SharedPreferences.Editor editor = settings.edit(); 
     editor.putBoolean("IsMute", mIsMute); 

     // Commit the edits! 
     editor.commit(); 
    } 
} 
+0

Je ne sais pas comment faire. J'ai mis à jour ma question originale avec ma méthode qui met en sourdine ou non. Aurais-je besoin de stocker le résultat dans SharePreferences et d'appeler pour voir ce qu'il y a dans mon init()? – taraloca

+0

J'ai mis à jour ma réponse –

+0

Tout d'abord, je vous remercie de votre aide ... Je l'ai un peu travailler. Par un peu, je veux dire que chaque fois que je démarre mon application, il est coupé même si j'ai fermé mon application sans être muté. J'ai essayé de changer la valeur dans le putBoolean en vain. Des idées? – taraloca

Questions connexes