[gelöst] setText() setzt nur beim ersten Aufruf den text eines TextViews

  • Hallo zusammen,


    ich hab ein seltsames Problem, zu dem ich bis jetzt noch keine Lösung gefunden habe.
    Ich hab eine Anwendung mit zwei Activities. Die erste Activity ruft über einen Menüpunkt die zweite Activity auf. Im onStart() der zweiten Activity werden einige TextViews mit Werten gefüllt. Das funktioniert noch einwand frei.
    Wenn ich jetzt den Zurück-Button betätige und über das Menü die zweite Activity nochmal starte, wird ja nochmal onStart() aufgerufen und eigentlich auch die Werte nochmal gesetzt. Allerdings bleiben die TextViews jetzt leer. Die Methoden, die die Strings setzen würden, schicken aber laut Debugger auch noch die korrekten Werte an setText().


    ich hab mittlerweile echt keine Ahnung mehr, was ich falsch gemacht haben könnte.


    hier ein paar Code-Schnippsel:


    Aufruf der zweiten Activity:

    Code
    Intent intent = new Intent(_view.GetContext(), NetworkSettingsActivity_.class);
    _view.GetContext().startActivity(intent);


    Optional bzw. urspünglicher Code mit AndroidAnnotations:

    Code
    NetworkSettingsActivity_.intent(_view.GetContext()).start();


    Im onStart() der zweiten Activity wird dann folgender Code ausgeführt:

    Code
    // value ist ein String, der laut Debugger auch immer den richtigen Wert enhält
    ((TextView)findViewById(R.id.txtIPAddress)).setText(value)


    Vielleicht sollte ich das noch erwähnen: Ich wollte eigentlich AndroidAnnotations verwenden, hab davon aber den Großteil mittlerweile ausgebaut, weil ich dachte, dass es vielleicht damit zusammen hängt.


    Wie gesagt: Beim ersten Aufruf der Activity werden die Felder richtig gefüllt. Erst beim zweiten Aufruf bleiben aus irgendeinem Grund die Felder leer, obwohl die richtigen Werte übergeben werden.

  • Hallo,
    ich gehe genauso vor und habe keine Probleme. Anbei mein Schema:



    Gruss Klaus

  • Problem gelöst...


    Ich habe einen Singleton verwendet, der beim ersten Aufruf mit dem Context der aufrufenden Activity initialisiert wird. Beim zweiten Aufruf, wurde aber scheinbar wirklich eine neue Activity erstellt, während der Singleton immer noch mit der alten Activity arbeitete. Das witzige daran ist, dass im Debugger natürlich trotzdem alles vollkommen in Ordnung aussieht, weil die Daten ja in der Activity ankommen, aber eben nicht in der aktuellen Instanz.


    Was lernt man daraus? Niemals ein Singleton verwenden, wenn man aus irgendeinem Grund initialisieren muss *grml* Manchmal ist es doch ganz gut, wenn man mal eine Nacht über ein Problem schläft.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!