Shared Preferences für Textview mit Int

T

TimWeiland

Neues Mitglied
1
Hallo zusammen,
ich bin noch neu in der Materie und stehe vor einem kleinem Problem. Hier die notwendigen Teile des Codes:


Code:
OnCreate:
LoadInt();

Intent aus anderer Activity:
String erledMo = intent.getStringExtra("Erledigt1");
textView7.setText(String.valueOf(erledMo));

        
        Checkbox mit Counter:
        checkBox4.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean b) {

                if (b) {
                    checked1 = true;
                    saveSettingsBoolean("ERLEDIGT1", checked1);
                    cCounter++;
                    textView7.setText(Integer.toString(cCounter));
                    SaveInt();
                } else {
                    checked1 = false;
                    saveSettingsBoolean("ERLEDIGT1", checked1);
                    cCounter--;
                    textView7.setText(Integer.toString(cCounter));
                    SaveInt();
                }
            }
        });
        
        public void SaveInt(){
        sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putInt("key", cCounter);
        editor.commit();
    }
    public void LoadInt(){
        sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
        cCounter = sharedPreferences.getInt("key", 0);
    }
    Intent in andere Activity übergeben:
    String erledMo = textView7.getText().toString();
    intent7.putExtra("Erledigt1", erledMo);
    startActivity(intent7);

So also ich möchte den Wert aus textView7 (cCounter) speichern, sodass er beim Neuaufruf der Activity erhalten bleibt. Eigentlich einfach, jedoch funktioniert es so leider nicht, aber das Programm insgesamt läuft trotzdem, sodass mir auch keine Fehlermeldungen angezeigt werden. Falls es noch wichtig ist: Es gibt mehrere Checkboxen (insg. 12) allerdings ist der Code bis auf die ID derselbe.
Ich würde mich sehr freuen, wenn mir jemand helfen kann.
 
Hallo das hatten wir doch alles im vorherigen Thread.

Wenn du willst das das was in der Pref ist auch beim App start in der onCreate angezeigt wird.
Wieso liest du dann nicht die Pref auch in der onCreate aus ?

Das übergeben der Parameter an den Intent wird dir da nicht viel bringen. Was passiert wenn du die app beendest und wider startest dann willst du doch wieder den alten wert haben.

Code:
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
String erledMo = sharedPreferences.getInt("key", 0);
textView7.setText(String.valueOf(erledMo));

so sollte es dir den alten wert am anfang anzeigen.

Wieso übergibst du denn den Counter an die nächste Activity wenn er doch in der Pref steht?
Macht keinen sinn.
Du willst ihn doch in dieser Activity am Anfang anzeigen.
Beiträge automatisch zusammengeführt:

Das was du den Intent am ende übergibst, ist nicht am anfang der Activity im Intent.
Außer du rufst die Actifity ständig erneut auf . Aber auch das wird nicht so funktionieren wie du dir das vorstellst.

Was du aufrufst kann ich nicht sehen da du weder die Definition der Klasse noch das erstellen des Intents gepostet hast.
welche Klasse der intent7 startet sehe ich nicht.


Ich denke du hast hier einen großen Denkfehler .

Eigentlich holst du ja den counter in der loadInt am Anfang aus der pref. Warum setst du nicht einfach deine Textview damit? Wozu das mit den intent?

Das zeigt mir nur das du das Prinzip eines intent noch nicht verstanden hast.
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: TimWeiland

Ähnliche Themen

netfreak
  • netfreak
Antworten
10
Aufrufe
455
netfreak
netfreak
stele
Antworten
4
Aufrufe
1.156
stele
stele
5
Antworten
0
Aufrufe
1.142
586920
5
Zurück
Oben Unten