List Activity - Wert wird nicht in neue Activity übertragen

  • Antworten:3
Joachim Schoenfeld
  • Forum-Beiträge: 14

18.11.2018, 13:12:37 via Website

Hallo,
ich habe grade folgendes Problem>>>

Ich habe eine ListActivity mit einem Listview und ein
onCreateContextMenu (Start, Ziel) auf den listitems.

Bei Click auf "Start" wird über intent das value des listitems in eine Textbox in der MainActivity übergen, die sich dann öffnet.
Jetzt gehe ich über super.onBackPressed() zurück zur ListActivity .
Jetzt das Gleiche mit Click auf "Ziel ,...in eine 2te Textbox in der MainActivity.
Das Problem ist das der Erste (über Start) übergebene Text nicht mehr da ist.
Wie kann ich das machen, das der erste Text in der Textbox MainActivity bleibt ?

Danke im voraus und Schönen Sonntag

— geändert am 18.11.2018, 13:45:47 durch Moderator

Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

18.11.2018, 13:49:22 via Website

Hallo Joachim,

laut deiner Beschreibung willst du über ein Intent die Start bzw. Ziele setzen.

Da du vermutlich fürs Ziel auch einen neuen Intent machst, wird das nicht übernommen, da eine neue Activitiy Instanz erzeugt wird.

Um das passend hin zu bekommen musst du das etwas anders machen:

  1. Es sollte sich direkt die Übersichtsactivity öffnen
  2. Bei klick auf Start wird nur ein Dialog bzw. eine "activity for Result" geladen
  3. In der Main kannst du den Result dann auswerten
  4. Fürs Ziel kanst du den gleichen Dialg/ ActivityResult nutzen , bekommst im Intent halt andere Daten übergeben.

Siehe z.b.
https://developer.android.com/training/basics/intents/result

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Kommentieren
Joachim Schoenfeld
  • Forum-Beiträge: 14

18.11.2018, 17:05:25 via Website

Habe mal irgendwo gelesen , das man das über die Manifest regeln kann.
mit Activity Result is ganz schön umständlich.

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

18.11.2018, 17:34:43 via Website

Hi
Das wird so nicht gehen.
Du gehst von einer Activty mit Intent in eine andere. Speicherst dort vermutlich den übergebenen Wert.
Nun verlässt und beendest du die Activity in dem du wider die vorhergehende Activity aufrufst.
Beim beenden einer Activity werden die Variablen gelöscht. Wenn du also die Activity wieder aufrufst wird auch wieder die onCreate aufgerufen das ist Quasi ein Neustart der Activity .
Hoffe das dir jetzt der Grund klar geworden ist warum die Werte weg sind.

Du musst die Werte Speichen.
das könntest du zb. in den SharedPreferenzeces machen.
Oder du veränderst das verhalten so wie es dir Pascal schon gesagt hat.

Habe mal irgendwo gelesen , das man das über die Manifest regeln kann.

Da kannst du nur bestimmen welche Activity beim klick auf den Backbutton aufgerufen werden soll.
Das verhalten des Backstack.
Das Problem mit den nicht gespeicherten werte wirst du damit nicht lösen.

— geändert am 18.11.2018, 19:51:01

Hilfreich?
Pascal P.
Kommentieren