2017-09-19 3 views
1

La chose est que je veux stocker mon statut de bouton toogle dans la préférence partagée, de sorte que je quand je reviens à l'application mon bouton toogle restera dans l'état précédent. C'est un peu quelque chose Voulez-vous l'utiliser. Si l'utilisateur fait activer le bouton ce qui signifie quand il revient, il montrera que le bouton sera activé. Jusqu'à présent, je l'ai fait estComment stocker le statut du bouton toogle dans les préférences partagées et charger le statut plus tard dans Android?

tb_vibrate = (ToggleButton)this.findViewById(R.id.tb_vibrate); 
tb_vibrate.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      if(tb_vibrate.isChecked()) 
      { 
       Toast.makeText(ProfileActivity.this, "Toggle button is on", Toast.LENGTH_LONG).show(); 
       tb_vibrate.setChecked(true); 
      } 
      else { 
       Toast.makeText(ProfileActivity.this, "Toggle button is Off", Toast.LENGTH_LONG).show(); 
       tb_vibrate.setChecked(false); 
      } 
     } 
    }); 

Et voici ma classe SharePreference

public class NotificationManager { 

    private static final String PREFS_FILE_NAME = "AppNotificationManager"; 
    private static final String VIBRATE = "vibrate"; 
    private static final String NOTIFICATION_ALERT = "notification_alert"; 
    private static final String NOTIFICATION_SOUND = "notification_sound"; 
    private static final String CALL_RINGTONE = "call_ringtone"; 
    private static final String RINGTONE_VIBRATION = "ringtone_vibrate"; 

    public static void setVibrate(final Context ctx, final String vibrate) { 
     final SharedPreferences prefs = ctx.getSharedPreferences(NotificationManager.PREFS_FILE_NAME, Context.MODE_PRIVATE); 
     final SharedPreferences.Editor editor = prefs.edit(); 
     editor.putString(NotificationManager.VIBRATE, vibrate); 
     editor.commit(); 
    } 

    public static String getVibrate(final Context ctx) { 
     return ctx.getSharedPreferences(NotificationManager.PREFS_FILE_NAME, 
       Context.MODE_PRIVATE).getString(NotificationManager.VIBRATE, ""); 
    } 


    } 

Alors, comment créer ma classe de préférence partagée pour stocker les données et l'utiliser plus tard?

Répondre

2

vous pouvez utiliser SharedPreferences pour stocker l'état de votre ToggleButton

Le SharedPreferences classe fournit un cadre général qui vous permet de sauvegarder et de récupérer des paires clé-valeur persistante des types de données primitifs. Vous pouvez utiliser SharedPreferences pour enregistrer des données primitives: booléens, flottants, ints, longs et chaînes. Ces données persisteront dans toutes les sessions utilisateur (même si votre application est supprimée).

Exemple de code

SharedPreferences sp=getSharedPreferences("Login", Context.MODE_PRIVATE); 
SharedPreferences.Editor Ed=sp.edit() 

tb_vibrate = (ToggleButton)this.findViewById(R.id.tb_vibrate); 
tb_vibrate.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      if(tb_vibrate.isChecked()) 
      { 
       Toast.makeText(ProfileActivity.this, "Toggle button is on", Toast.LENGTH_LONG).show(); 
       tb_vibrate.setChecked(true); 

       Ed.putBoolean("ISCHECKED",true); 
       Ed.commit(); 

      } 
      else { 
       Toast.makeText(ProfileActivity.this, "Toggle button is Off", Toast.LENGTH_LONG).show(); 
       tb_vibrate.setChecked(false); 
       Ed.putBoolean("ISCHECKED",false); 
       Ed.commit(); 
      } 
     } 
    }); 

obtenir des valeurs ci-dessous utilisent le code

SharedPreferences preferences = getSharedPreferences("MyPrefs", MODE_PRIVATE); 
boolean flag = preferences.getBoolean("ISCHECKED", false); 
if(flag){ 
     tb_vibrate.setChecked(true); 
    }else { 
     tb_vibrate.setChecked(false); 
    } 
+0

S'il vous plaît voir mon utilisation question –

+0

mise à jour du code ci-dessus @TanvirDurlove –

+0

Puis-je partager avec vous classe. Désolé de ne pas comprendre comment utiliser. –