Variable überschreiben (Android Studio)

wer112

Top Contributor
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.

   }
 

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

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
ruutaiokwu Android Studio (SDK) ANDROID_SDK_ROOT-Variable? Android & Cross-Platform Mobile Apps 5
J Variable in strings.xml (Android Studio) Android & Cross-Platform Mobile Apps 0
J R.string.(variable) geht das Android & Cross-Platform Mobile Apps 3
T variable public machen... Android & Cross-Platform Mobile Apps 5
G Android Finale Variable ändert sich NIE? Android & Cross-Platform Mobile Apps 2
G Connector.open(): cannot find symbol - variable Connector Android & Cross-Platform Mobile Apps 11
S Variable Anzahl von Bytes aus einer Datei lesen Android & Cross-Platform Mobile Apps 2
T Screenshot speichern ohne alte Datei überschreiben Android & Cross-Platform Mobile Apps 3
G Back-Button Methode überschreiben Android & Cross-Platform Mobile Apps 2
P Android Sort Methode von ArrayAdapter überschreiben Android & Cross-Platform Mobile Apps 5
BossLama Android Android Auto mit Linux Android & Cross-Platform Mobile Apps 1
A Was übersehe ich bei der Einrichtung eines neuen Android-Studios Android & Cross-Platform Mobile Apps 56
W Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing com.android.build.gradle.inter Android & Cross-Platform Mobile Apps 18
S Android API 35+ Status/Navigation bar color/height from Java Android & Cross-Platform Mobile Apps 0
D Android Android Studio plus Gradle 7.5 bauen anders die apk Android & Cross-Platform Mobile Apps 0
J Benachrichtigung Freigabe ab Android 14 Android & Cross-Platform Mobile Apps 1
J Android Benachrichtigung zum Zeitpunkt ers Android & Cross-Platform Mobile Apps 15
J Das Beispiel von Android erzeugt Fehler Android & Cross-Platform Mobile Apps 8
J Zeitdifferenzen unter Android 7 (API < 26) berechnen Android & Cross-Platform Mobile Apps 4
W Netzwerk Verbindungen Java Android Android & Cross-Platform Mobile Apps 107
Z Android IntelliJ Android & Cross-Platform Mobile Apps 2
M Repository bei Room-Database in Android Studio (Java) Android & Cross-Platform Mobile Apps 2
Android App auf das eigene Handy bekommen Android & Cross-Platform Mobile Apps 3
Alex IV Android App erstellen Android & Cross-Platform Mobile Apps 3
OnDemand CrossPlatform Kotlin iOs/Android Datenverbrauch Android & Cross-Platform Mobile Apps 2
W In Android Studio Integer an andere activities übergeben Android & Cross-Platform Mobile Apps 2
wladp Android Studio Room Database Android & Cross-Platform Mobile Apps 1
N "Schöne" Datatable in Android und setzen von Parametern von Textview im Code Android & Cross-Platform Mobile Apps 5
N Android game programmieren Android & Cross-Platform Mobile Apps 5
T Android Studio: Einen Button in einer For Schleife verwenden Android & Cross-Platform Mobile Apps 2
K BLE Komunikation mit Android studio und esp32 Android & Cross-Platform Mobile Apps 5
G Android UDP Kommunikation Android & Cross-Platform Mobile Apps 1
M Paper DB wird in Android Studio nicht erkannt Android & Cross-Platform Mobile Apps 7
J Android zugrif auf Thread nach Handy drehen. Android & Cross-Platform Mobile Apps 10
T Android Android Augmented Faces in Java. Neue Landmarks erstellen Android & Cross-Platform Mobile Apps 1
K Android Android In-App-Purchase lädt nicht Android & Cross-Platform Mobile Apps 0
Besset Android http request an interne ip adresse funktioniert nicht Android & Cross-Platform Mobile Apps 8
J Is Android Development Head First Outdated? Android & Cross-Platform Mobile Apps 3
J Android Android Datenbankverbindung zum Raspberry Pi Android & Cross-Platform Mobile Apps 1
lolcore Android Studio -Download Documentation for Android SDK Android & Cross-Platform Mobile Apps 0
S Sinnvollste weg eine SQLite DB mit Android auslesen Android & Cross-Platform Mobile Apps 7
W Problem mit Android Studio Android & Cross-Platform Mobile Apps 0
W App Abo Android Android & Cross-Platform Mobile Apps 10
OSchriever Android Android MediaPlayer bei Anruf stoppen/pausieren Android & Cross-Platform Mobile Apps 2
OSchriever Auf onClick-Listener reagieren und Parameter übergeben (Android Studio) Android & Cross-Platform Mobile Apps 4
W removeNetwork Android App mit Spendenaktion fürs Tierheim! Android & Cross-Platform Mobile Apps 1
T Android R.string.test+i Problem Android & Cross-Platform Mobile Apps 2
P undefinierbarer Fehler Android Android & Cross-Platform Mobile Apps 8
T Android ArrayList sortieren mit 2 Werten ohne thencomparing , Wie? Android & Cross-Platform Mobile Apps 10
ruutaiokwu Android Selbst entwickelter SMTP-Client läuft auf PC, nicht aber auf Android Android & Cross-Platform Mobile Apps 9
ruutaiokwu Android Warum muss man bei Android Studio immer 2x auf "Run" klicken damit die App auf dem Gerät startet Android & Cross-Platform Mobile Apps 8
ruutaiokwu Android Wo das 'android.useAndroidX' property hinzufügen? Android & Cross-Platform Mobile Apps 8
ruutaiokwu Android In einem Android-“Spinner”-Element GLEICHZEITIG Bild (links) UND Text (rechts) anzeigen Android & Cross-Platform Mobile Apps 0
P Login und Registrierung Android Anzeige Android & Cross-Platform Mobile Apps 7
S Von JavaFx zu Android Android & Cross-Platform Mobile Apps 12
K Android to Pi | Websocket Problem Android & Cross-Platform Mobile Apps 3
ruutaiokwu Wie fügt man bei Android Studio .jar-Libraries zu einem Android-Java-Projekt hinzu? Android & Cross-Platform Mobile Apps 33
M Komponenten positionieren in Android Studio 3.6.3 Android & Cross-Platform Mobile Apps 1
M Android Studio - Property-Fenster einblenden Android & Cross-Platform Mobile Apps 1
M Android Studio - App auf dem Smartphone testen Android & Cross-Platform Mobile Apps 7
M Barrierefreie Appentwicklung für Android - Suche Codebeispiele Android & Cross-Platform Mobile Apps 8
M Android Studio - Configuration fehlt Android & Cross-Platform Mobile Apps 20
M Wo kann ich das Android SDK herunterladen / wie kann ich es installieren Android & Cross-Platform Mobile Apps 3
M Unsupported class file major version 57 - Fehlermeldung bei Android Studio Android & Cross-Platform Mobile Apps 27
O Web API in Android (JAVA) einbinden Android & Cross-Platform Mobile Apps 3
J Android Studio macht seltsame Sachen Android & Cross-Platform Mobile Apps 2
J Android 9.1 aber android Studio findet API22 Android & Cross-Platform Mobile Apps 0
Dimax Web-Seite in native app convertieren mit Android Studio Android & Cross-Platform Mobile Apps 8
A Android Studio: while-Schleife beginnt nicht Android & Cross-Platform Mobile Apps 5
lolcore android studio: fehler bei laden des emulators Android & Cross-Platform Mobile Apps 10
J Android App - Browser öffnen und Text eingeben/Button click auslösen Android & Cross-Platform Mobile Apps 10
A Android-Studio: 2. Layout nach kurzer Zeit aufzeigen Android & Cross-Platform Mobile Apps 2
A jpg wird im Android Studio nicht akzeptiert Android & Cross-Platform Mobile Apps 3
J Android Studio - ArrayList - Selected Item ermitteln Android & Cross-Platform Mobile Apps 13
T Android SDK-Manager startet nicht in Eclipse Android & Cross-Platform Mobile Apps 5
T Bringen mir die Java-Basics irgendetwas für die Android-Programmierung Android & Cross-Platform Mobile Apps 4
J Was soll das bedeuten ? does not require android.permission.BIND_JOB_SERVICE permission Android & Cross-Platform Mobile Apps 7
A Android Studio: ImageView verpixelt Android & Cross-Platform Mobile Apps 2
J intend Service im Android Studio Android & Cross-Platform Mobile Apps 4
L Android Android Development eventuell mit Flutter Android & Cross-Platform Mobile Apps 1
S Android Layout - welchen Typ? Android & Cross-Platform Mobile Apps 3
T Fehler Android Studio: java.net.MalformedURLException: no protocol: http%3A%2F%2Fwww.mal ..... Android & Cross-Platform Mobile Apps 2
Arif Android Android Studio: Fehler beim Einbinden fremder Bibliothek? Android & Cross-Platform Mobile Apps 2
L Android Android Contacts DB auslesen Android & Cross-Platform Mobile Apps 1
A Android Studio - App mit Nearby Android & Cross-Platform Mobile Apps 1
L Android content URI Datei einlesen Android & Cross-Platform Mobile Apps 9
N Android Game Background Service Android & Cross-Platform Mobile Apps 11
Jackii Android Android Studio Error im Testlauf ohne zu programmieren Android & Cross-Platform Mobile Apps 9
B Android Probleme mit Android Studio Android & Cross-Platform Mobile Apps 6
Excess Android Service läuft nicht in Sandby weiter Android & Cross-Platform Mobile Apps 2
B Android Projekt für Android und IOS erstellen? Android & Cross-Platform Mobile Apps 5
J App funktioniert auf Android 5, auf 6 nicht Android & Cross-Platform Mobile Apps 2
J Android Snake Android & Cross-Platform Mobile Apps 15
J Android TaschenRechner Android & Cross-Platform Mobile Apps 22
I Das Problem mit der Tastatur... android:windowSoftInputMode="adjustPan" Android & Cross-Platform Mobile Apps 1
E Wie erhalte ich Zugriff auf das Microfon? (Android Studio) Android & Cross-Platform Mobile Apps 9
C Android Programmierung speziell oder einfach Java Buch kaufen? Android & Cross-Platform Mobile Apps 3
B Android Kein Zugriff auf Telefonspeicher (Android 6) Android & Cross-Platform Mobile Apps 1
T Android Equalizer für Android Android & Cross-Platform Mobile Apps 3
L Android Android Studio - Exportierte APK funktioniert nicht Android & Cross-Platform Mobile Apps 6

Ähnliche Java Themen

Neue Themen


Oben