2017-04-19 1 views
0

Je suis nouveau ici. Je suis français alors peut-être que mon anglais n'est pas très bon, désolé pour ça. Je suis un débutant dans le développement Android, je dois créer une application pour terminer mon étude.SharedPreferences enregistrer un changement de bouton invisible après avoir cliqué dessus

Je m'explique à mon problème: J'ai sur une activité appelée VoeuxActivity.java 8 boutons, ils sont tous VISIBLES au début, quand un utilisateur clique sur l'un d'entre eux change de INVISIBLE (l'utilisateur ne peut pas voir le bouton après avoir cliqué dessus), je n'ai aucun problème pour le faire. Mais mon problème est quand je quitte l'application et que je reviens sur mon application, le bouton est à nouveau visible, donc il n'y a pas de sauvegarde sur mon application. Je pense que je dois utiliser SharedPreferences mais je ne sais vraiment pas comment l'utiliser. Si quelqu'un peut m'aider, je serai très heureux. Je poste un code de cour avec un bouton et le texte au-dessus du bouton (parce que le bouton est une image en arrière-plan). Je fais aussi le TextView INVISIBLE et je veux aussi enregistrer le changement.

VoeuxActivity public class activité {

public static boolean isClicked = false; 
Button totoB; 
TextView totoTv; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_voeux); 

    totoB = (Button) findViewById(R.id.perso1); 
    totoTV = (TextView) findViewById(R.id.perso1Text); 
    totoB.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      isClicked = true; 
      totoB.setVisibility(View.INVISIBLE); 
      totoTv.setVisibility(View.INVISIBLE); 
      Intent intentToto = new Intent(VoeuxActivity.this, JouerActivity.class); 
      startActivity(intentToto); 
     } 
    }); 

}}

Comment puis-je enregistrer le changement du bouton et la TextView du visible à l'invisible?

Merci pour votre aide. Giggs

Répondre

1

Vous pouvez utiliser SharedPreferences enregistrer certains paramètres et informations, pour votre cas suivre le code ci-dessous:

Button totoB; 
    TextView totoTv; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_voeux); 

     final SharedPreferences prefs = getSharedPreferences("sharedPreferences", Context.MODE_PRIVATE); 

     totoB = (Button) findViewById(R.id.perso1); 
     totoTv = (TextView) findViewById(R.id.perso1Text); 
     totoB.setVisibility(prefs.getBoolean("isTotoBVisible", true) ? View.VISIBLE : View.INVISIBLE); 
     totoTv.setVisibility(prefs.getBoolean("isTotoTVVisible", true) ? View.VISIBLE : View.INVISIBLE); 

     totoB.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       prefs.edit().putBoolean("isTotoBVisible", false).apply(); 
       prefs.edit().putBoolean("isTotoTVVisible", false).apply(); 

       totoB.setVisibility(View.INVISIBLE); 
       totoTv.setVisibility(View.INVISIBLE); 
       Intent intentToto = new Intent(VoeuxActivity.this, JouerActivity.class); 
       startActivity(intentToto); 
      } 
     }); 
    } 
+0

Merci pour votre aide, mais j'ai une nouvelle question pour vous, il me semble que je ne peux pas le poster à nouveau ici, je ne comprends pas pourquoi, tu sais si je peux créer un nouveau sujet? –

1

Mettre en oeuvre votre SharedPreferences cette façon:

Boolean isFirstTime; 

    SharedPreferences app_preferences = PreferenceManager 
     .getDefaultSharedPreferences(Splash.this); 

SharedPreferences.Editor editor = app_preferences.edit(); 

isFirstTime = app_preferences.getBoolean("isFirstTime", true); 

if (isFirstTime) { 

//implement your first time logic 
//SHow Button 
editor.putBoolean("isFirstTime", false); 
editor.commit(); 

}else{ 
//Invisible button 
//app open directly 
} 
+0

Merci beaucoup pour votre solution –

1

Essayez ce,

public static boolean isClicked = false; 
Button totoB; 
TextView totoTv; 
SharedPreferences preferences; 
SharedPreferences.Editor prefsEditor ; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_voeux); 

    preferences = getSharedPreferences("AppPrefs", MODE_PRIVATE); 
    prefsEditor = preferences.edit(); 

    //get value 
    String buttonClick=preferences.getString("ButtonClick", "0"); 
    if(buttonClick.equals("0"))//before button click 
    { 
     totoB.setVisibility(View.VISIBLE); 
     totoTv.setVisibility(View.VISIBLE); 
    } 
    else 
    { 
     totoB.setVisibility(View.INVISIBLE); 
     totoTv.setVisibility(View.INVISIBLE); 
    } 

    totoB = (Button) findViewById(R.id.perso1); 
    totoTV = (TextView) findViewById(R.id.perso1Text); 
    totoB.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      isClicked = true; 
      prefsEditor.putString("ButtonClick", "1"); 
      totoB.setVisibility(View.INVISIBLE); 
      totoTv.setVisibility(View.INVISIBLE); 
      Intent intentToto = new Intent(VoeuxActivity.this, JouerActivity.class); 
      startActivity(intentToto); 
     } 
    }); 
} 
+0

Merci pour votre aide, ça marche –

+0

vous êtes les bienvenus ..accept ans – user2025187