Shared Preferences für Textview mit Int

  • 1 Antworten
  • Neuester Beitrag
Diskutiere Shared Preferences für Textview mit Int im Android App Entwicklung im Bereich Betriebssysteme & Apps.
T

TimWeiland

Neues Mitglied
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.
 
J

jogimuc

Stammgast
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.
Beitrag automatisch zusammengefügt:

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:
Ähnliche Themen - Shared Preferences für Textview mit Int Antworten Datum
4