Variable überschreiben (Android Studio)

W

wer112

Mitglied
Ich benötige eure hilfe. Ich bekomme es einfach es nicht hin. Das ist bis jetzt das einzigste was ich bei der App aktuell nicht hinbekomme. Diese Schritte sollen genau erklären, was die App macht... Der Rest der App läuft sehr gut, nur dieser Teil(der wichtigste) will nicht.

  1. App wird geöffnet
  2. lädt Datum aus SharePreferens
  3. App vergleicht das Datum aus der Datei mit dem heutigen Datum
  4. sind die Datume gleich, dann setzt START_TIME_IN_MILLIS den Wert auf 7200000
  5. Wenn die App den Wert überschrieben hat, speichert die App das heutige Datum + 1 Tag(nächsten Tag)
Code:
   private static final long START_TIME_IN_MILLIS = 7200000; // 2 Stunden
    private long timeLeftInMilliseconds;
    private long mEndTime;



    private boolean timerRunning;

    private boolean internetcheck;

    private SharedPreferences speichen;
    private SharedPreferences.Editor editor;


   protected void internetbonus(){

       //Heutiger Tag

       Calendar calendar = Calendar.getInstance();
       String Day = DateFormat.getDateInstance().format(calendar.getTime());

       speichen = getApplicationContext().getSharedPreferences("Bonus", MODE_PRIVATE);
       editor = speichen.edit();
       // Öffnet SharPerferns und lesen der Datei
       if (speichen.getString("datum", null) != null){

           if ("datum" == Day){



                START_TIME_IN_MILLIS = 7200000;
               Calendar calendar2 = Calendar.getInstance();
               String Day2 = DateFormat.getDateInstance().format(calendar.getTime());
               calendar2.add( Calendar.DATE, 1 );

               if (Day2 != null){
                   SharedPreferences prefs = getSharedPreferences("Bonus", MODE_PRIVATE);
                   SharedPreferences.Editor editor = prefs.edit();
                   editor.putString("datum", Day2);
                   editor.commit();
               }

           }

       }

       //if Anweisung ist ausgelegte datei gleich Heutiger Tag, dann setzen START_TIME_IN_MILLIS = 7200000.
       //Wenn es gesetzt ist, wird der Heutiger Tag + 1 in die Datei geschrieben.

   }
 
P

Panda9296

Bekanntes Mitglied
Hi =) mein erster Hilfsbeitrag... also sei gnädig.
Shared Preferences speichert einen String. Du musst also genau sagen, was du prüfen möchtest. Du kannst nicht einfach das Datum vergleichen. So vergleichst du 2 Strings. Sag dem Compoiler was genau du vergleichen möchtest... fange mit dem Jahr an und arbeite dich bis zum Tag. Dann sollte es gehen =). Übrigens, wenn du ein Objekt mit dem Datum speicherst, wäre ein Hawk vll besser als SharedPreferences. Hoffe ich konnte dich damit auf die Lösung bringen. Würde mich freuen, wenn du uns auf den laufenden hälst.

Gruß Panda
 
mihe7

mihe7

Top Contributor
Hi =) mein erster Hilfsbeitrag... also sei gnädig.
Schön, dass Du helfen willst, allerdings ist sein Code noch konfuser :)

@wer112 in dem Code sehe ich einige Probleme:
1. Benennungskonventionen nicht eingehalten: Variablennamen schreibt man in lowerCamelCase.
2. String-Vergleich via Referenzen-Vergleich: das funktioniert nur in Ausnahmefällen. Strings sind Objekte und als solche per equals auf Gleichheit zu prüfen
3. Warum willst Du ein Datum mit dem String "datum" vergleichen?!?
4. Day2 wird niemals null, sondern gleich Day sein.
5. speichen ist wohl ein Tippfehler und "speichern" ist kein guter Variablenname
6. prefs ist das selbe (nicht nur das gleiche) wie speichen, analog gilt das für editor.
7. START_TIME_IN_MILLIS ist eine Konstante - der kann man keinen Wert zuweisen.
8. Du braucht kein zwei Calendar
9. Time API wäre besser (die ließe sich wohl unter Android 4 auch mit API Levels < 26 verwenden)

Ich denke mal, Du willst etwas wie
Java:
    protected void internetbonus(){
        Calendar calendar = Calendar.getInstance();
        String today = DateFormat.getDateInstance().format(calendar.getTime());

        prefs = getApplicationContext().getSharedPreferences("Bonus", MODE_PRIVATE);
        String storedDate = prefs.getString("datum", ""); // Standardwert spart uns den null-check
        if (storedDate.equals(today)) {
            calendar.add( Calendar.DATE, 1 );     
            String tomorrow = DateFormat.getDateInstance().format(calendar.getTime());
            SharedPreferences.Editor editor = prefs.edit();
            editor.putString("datum", tomorrow);
            editor.commit();
        }
        //if Anweisung ist ausgelegte datei gleich Heutiger Tag, dann setzen START_TIME_IN_MILLIS = 7200000.
        //Wenn es gesetzt ist, wird der Heutiger Tag + 1 in die Datei geschrieben.
    }
Die Sache mit der Startzeit musst Du Dir allerdings noch überlegen, evtl. soll ja timeLeftInMilliseconds gesetzt werden?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Variable als Objekt Name Allgemeine Java-Themen 3
D "Automatisierte", variable verschachtele for-Schleife Allgemeine Java-Themen 9
T statische Variable und nicht-statische Methode Allgemeine Java-Themen 2
P Variable wird in for - loop nicht richtig hochgezählt Allgemeine Java-Themen 11
A Variablen non-static variable cannot be referenced from a static content Allgemeine Java-Themen 4
A Variable, welche Exeption wirft als "Global" deklarieren Allgemeine Java-Themen 13
I Scanner Variable Klassenimtern deklarieren Allgemeine Java-Themen 12
L Variablen Variable nicht aktualisiert Allgemeine Java-Themen 3
denny86 NetBeans Ordnernamen rekursiv auslesen und in Variable verarbeiten Allgemeine Java-Themen 38
R Variable durch mehrere Methoden ändern und nutzen Allgemeine Java-Themen 17
P Static Variable -> unterschiedliche Werte? Allgemeine Java-Themen 1
C Abstrakte Klasse, lokale Variable-Problem Allgemeine Java-Themen 1
T AWT AWT-EventQueue-0 Null_Pointer_Exception durch Variable Allgemeine Java-Themen 12
M Variable ändern bei jedem Schleifendurchlauf Allgemeine Java-Themen 32
F Wert in Variable schreiben, wenn diese gerade genutzt wird Allgemeine Java-Themen 10
P Prüfen ob es Variable mit Namen gibt der als String übergeben wird Allgemeine Java-Themen 7
S JFrame Variable mitgeben Allgemeine Java-Themen 5
M Variable außerhalb Klasse definierbar? Allgemeine Java-Themen 2
X Bild -> lokale Variable -> DB -> lokale Variable Allgemeine Java-Themen 3
F Aktuelle Variable Allgemeine Java-Themen 2
J String Variable verändert sich plötzlich Allgemeine Java-Themen 8
J private static final String variable Allgemeine Java-Themen 8
A Long variable wird negativ??? Allgemeine Java-Themen 1
reibi Classpath Classpath Variable beim Tomcat Allgemeine Java-Themen 2
M Zeiger auf statische Variable Allgemeine Java-Themen 1
H Klassennamen zum Aufruf eines statischen Feldes aus Variable holen Allgemeine Java-Themen 4
F Variable übergeben?! Allgemeine Java-Themen 2
L Variable auch in der function verfügbar machen? Allgemeine Java-Themen 4
M Collections Typ Variable einer generischen Collection ? Allgemeine Java-Themen 4
P Variablen Variable von void im ActionListener verwenden Allgemeine Java-Themen 3
M Parallele Programmierung: volatile Variable nimmt ungewöhnlichen Wert an Allgemeine Java-Themen 3
iB0T Variable Wert ausrauchen Allgemeine Java-Themen 3
T Variablen Variable wird als nicht genutzt angezeigt Allgemeine Java-Themen 8
S Datentypen Eine Variable von String zu Int ändern Allgemeine Java-Themen 5
Hoppelmann "Variable" in String erkennen Allgemeine Java-Themen 2
B Variable class in java.lang.Object Allgemeine Java-Themen 11
O Variablen Originalname einer übergebenen Variable prüfen Allgemeine Java-Themen 9
X Windows-Environment-Variable per jRegistryKey anpassen Allgemeine Java-Themen 6
P Variable in Array stellen Allgemeine Java-Themen 11
M Arraynamen durch Variable festlegen lassen Allgemeine Java-Themen 5
J Anderem Thread Variable mitgeben Allgemeine Java-Themen 2
nrg Auszulagernder Part, der aber variable Methode/Klasse aufruft Allgemeine Java-Themen 7
I %AppData% Variable für einen Prozess setzen Allgemeine Java-Themen 23
G Variablen Variable extern speichern - wie? Allgemeine Java-Themen 9
M Variablen Wie Variable verfügbar machen? Allgemeine Java-Themen 16
A variable aus einer anderen klasse verändern Allgemeine Java-Themen 5
G Variable Methodenwahl Allgemeine Java-Themen 11
C JFormattedTextField Inhalt einer Variable zuweisen Allgemeine Java-Themen 11
C Variablen Variable einer Klasse in einer anderen Klasse Nutzen Allgemeine Java-Themen 8
B Umgebungsvariable Variable wird nicht übernommen Allgemeine Java-Themen 4
N variable Anzahl von Objektinstanzen zur Laufzeit erstellen Allgemeine Java-Themen 4
C Environment Variable in Pfad -> Datei öffnen Allgemeine Java-Themen 5
Q Variable aus Schleife/Switch benutzen Allgemeine Java-Themen 7
algorismi int-variable Value Change event Allgemeine Java-Themen 3
E Variable dynamisch ausgeben Allgemeine Java-Themen 5
trash super() mit Variable bestücken Allgemeine Java-Themen 3
X Cannot refer to a non-final variable settings inside an inner class defined in a different method Allgemeine Java-Themen 4
A Variable Parameterinhalte an einen Query übergeben? Allgemeine Java-Themen 3
B static Variable / Unterklasse Allgemeine Java-Themen 2
J Was ist schneller? Neue Variable oder neuer Wert speziell int Allgemeine Java-Themen 3
S Innere Klasse: Zugriff auf äußere Variable Allgemeine Java-Themen 5
Semox Fehler - Zuweisung aus BufferedReader an Variable Allgemeine Java-Themen 3
Daniel_L RegEx - variable Vorkommen ersetzen? Allgemeine Java-Themen 5
P Unicode-Sequenz (u1234) in Variable speichern und ausgeben Allgemeine Java-Themen 6
G auf variable in anderer class zugreifen Allgemeine Java-Themen 2
G Variable global nutzen Allgemeine Java-Themen 4
V Variable vom Typ String zum Typen "Message" konve Allgemeine Java-Themen 2
J in einer static Variable Wert ändern Allgemeine Java-Themen 6
M Try-Catch: wie wird Variable bei Exception initialisiert? Allgemeine Java-Themen 8
G Speicherverbrauch einer Variable Allgemeine Java-Themen 2
C ArrayList mit Variable im Namen Allgemeine Java-Themen 16
T JNI Referenz auf Variable in Java? Allgemeine Java-Themen 2
G Überprüfen, ob Variable ein Array ist? Allgemeine Java-Themen 5
R Member-Variable erzwingen Allgemeine Java-Themen 17
D LinkedList anhand einer long-Variable der Objekte sortieren Allgemeine Java-Themen 5
M Zugriff auf Objekt, Name in Variable Allgemeine Java-Themen 3
G Problem mit einer Variable Allgemeine Java-Themen 3
O Future Variable Allgemeine Java-Themen 4
M variable übergeben NICHT KOPIEREN Allgemeine Java-Themen 12
loadbrain KeyEvent mit Variable verknüpfen Allgemeine Java-Themen 4
M Prüfen ob Variable vorhanden / initalisiert ist Allgemeine Java-Themen 4
G Variable wird ignoriert - warum ? Allgemeine Java-Themen 36
L ctrl-z wird nicht in Variable gespeichert Allgemeine Java-Themen 4
G Variable Anzahl JTextfleder Allgemeine Java-Themen 3
R Wenn Variable = wat ist Allgemeine Java-Themen 7
H Zugriff auf statische Variable synchronisieren Allgemeine Java-Themen 4
H globale Variable wird nicht überall erkannt Allgemeine Java-Themen 3
G Zugriff auf Variable in abgeleiteter Klasse Allgemeine Java-Themen 6
R Eine Variable an eine Methode mit Array übergeben Allgemeine Java-Themen 7
E Variable in einer Methode Allgemeine Java-Themen 13
O Environment Variable Setzen Allgemeine Java-Themen 2
G Referenz auf Variable! Allgemeine Java-Themen 3
C Variable aus einer Methode einlesen in einer verarbeiten und Allgemeine Java-Themen 6
G 1.5er String.format() -> variable Feldlaenge? Allgemeine Java-Themen 5
S wie übergebe ich eine Variable aus einer Methode an main() ? Allgemeine Java-Themen 16
J Nicht-static variable in static variable kopieren - wie? Allgemeine Java-Themen 14
C Reflection und variable casten ! Allgemeine Java-Themen 10
M variable Variable? Allgemeine Java-Themen 4
D Poiner beim Erzeugen eines Objektes mit Variable benennen! Allgemeine Java-Themen 5
F Zugriff auf Variable im Thread? Allgemeine Java-Themen 3

Ähnliche Java Themen

Anzeige

Neue Themen


Oben