2017-04-19 3 views
0

Ich bin neu hier. Ich bin Französisch, vielleicht ist mein Englisch nicht sehr gut, sorry dafür.SharedPreferences speichern eine Schaltfläche ändern unsichtbar nach dem Klick darauf

Ich bin ein Anfänger in der Android-Entwicklung, ich muss eine App für das Ende meiner Studie erstellen.

Ich erkläre Ihnen mein Problem: Ich habe auf einer Aktivität namens VoeuxActivity.java 8 Tasten, sie sind alle VISIBLE am Anfang, wenn ein Benutzer auf eine der Schaltflächen Schaltfläche ändern von UNSICHTBAREN klicken (Benutzer kann nicht sehen nachdem ich darauf geklickt habe), habe ich kein Problem dafür. Aber mein Problem ist, wenn ich die App kündige und ich auf meiner App wieder zurückkomme, ist die Schaltfläche wieder sichtbar, also gibt es keinen Speicher für meine App. Ich glaube, ich habe SharedPreferences verwenden können, aber ich weiß wirklich nicht, wie man das benutzt. Wenn jemand mir helfen kann, werde ich sehr glücklich sein. Ich poste einen Gerichtscode mit einem Knopf und dem Text über dem Knopf (weil der Knopf ein Bild im Hintergrund ist). Ich mache auch das TextView INVISIBLE und möchte die Änderung auch speichern.

public class VoeuxActivity erstreckt Aktivität {

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); 
     } 
    }); 

} }

Wie kann ich den Umstieg des Button und das Textview von sichtbar in unsichtbar zu retten?

Vielen Dank für Ihre Hilfe. Giggs

Antwort

1

Sie SharedPreferences verwenden können einige Einstellungen und Informationen zu speichern, für Ihren Fall unter dem Code folgen:

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

Vielen Dank für yo hilft, aber ich habe eine neue Frage für Sie, es scheint, ich kann es hier nicht noch einmal posten, ich verstehe nicht warum, weißt du, ob ich ein neues Thema schaffen kann? –

1

Ihre SharedPreferences auf diese Weise implementieren:

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

Vielen Dank für Ihre Lösung –

1

Try this,

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

Vielen Dank für Ihre Hilfe, es funktioniert –

+0

Sie sind willkommen..accept ans – user2025187

Verwandte Themen