2017-11-02 3 views
-1

Meine App verfügt über eine Schaltfläche, die deaktiviert, wenn der Tag ist der gleiche Tag, an dem es zuvor geklickt wurde, aber wenn ich die App neu starten die Schaltfläche wieder online, auch wenn der Tag zu deaktivieren ist es.Lassen einer Schaltfläche deaktiviert nach dem Neustart der App

shDayMed = sh.getInt("daymed", calendar.get(Calendar.DAY_OF_MONTH)); 
int day = shDayMed; 
int dayAtual = calendar.get(Calendar.DAY_OF_MONTH); 
if (day != dayAtual) { 
    save.setEnabled(true); 
    pesohj.setEnabled(true); 
} else { 
    save.setEnabled(false); 
    pesohj.setEnabled(false); 
} 

Ich glaube, dies der falsche Teil ist, wenn der Tag nicht der aktuelle Tag, sollte die Taste true gesetzt, aber sein das Gegenteil tun ...

+0

Wo speichern Sie den Tag, an dem geklickt wurde? Dieser Code fehlt. – Jeffrey

+1

Verwenden Sie "SharedPreferences" https://developer.android.com/training/basics/data-storage/shared-preferences.html –

+0

Veröffentlichen Sie Ihre Datensicherungsmethode. –

Antwort

1

Shop das letzte Datum geklickt in SharedPreferences dann Wenn Sie Activity starten, rufen Sie den Wert ab, um festzustellen, ob die Schaltfläche deaktiviert oder aktiviert sein sollte.

1

Sie müssen SharedPreferences verwenden, wenn Sie einen Wert verfolgen möchten, selbst wenn die App geschlossen und neu gestartet wird. Die Variablen, die Sie in den Code eingeben, werden beim Schließen der App gelöscht.

Speichern Sie die Variable auf gemeinsame Präferenzen wie folgt aus:

SharedPreferences sharedPrefs = PreferenceManager.getDeafaultSharedPreferences(this); 
SharedPreferences.Editor editor = sharedPrefs.edit() 
editor.putInt("Day", Calendar.DAY_OF_THE_MONTH); 
editor.apply() 

und dann rufen Sie sie mit:

int dayAtual = sharedPrefs.getInt("Day", -1 /* this is the default value if the pref isn't found*/) 

Hope this Ihnen geholfen.

Verwandte Themen