Wechsel zwischen Acivitys

  • Antworten:62
OverBurned
  • Forum-Beiträge: 49

20.12.2014, 18:48:39 via Website

Hallo Community,

ich arbeite jetzt schon länger an einer Art von Taschenrechner und stoße immer wieder auf verschiedene Probleme, wo ich einfach nicht mehr weiter komme und keine Ideen mehr habe. Ich habe schon verschiedene Dinge probiert aber es alles irgendwie nicht. Ich hoffe ihr könnt mir helfen!

Starte man die App, öffnet sich meine MainGUI, wo man verschiedene Rechenaufträge ausführen kann, was auch alles sehr gut funktioniert. Bei der Rechnung wird eine Art verlauf erstellt, welcher an eine ListView in einer anderen GUI übergeben wird. Wenn ich diese öffne ist der Verlauf auch korrekt vorhanden. Bis dahin läuft alles einwandfrei.

  1. Problem:
    Habe ich von GUI 1(MainGUI) meine GUI 2(VerlaufsGUI) geöffnet und gehe mit dem Back Button zurück, beendet sich die App. Dies habe ich bereits mit einer onKeyDown Methode verhindert. Ich möchte jetzt allerdings, dass wenn ich von GUI 1 GUI 2 geöffnet habe, beim drücken des Back Buttons immer zu GUI 1 zurück komme. Dies soll auch funktionieren, wenn ich nicht nur 2 GUIs habe sondern zb auch 3. Ich öffne also GUI1, dann GUI2 und dann GUI3. Von GUI 3 möchte ich dann zu GUI 1.Wenn GUI 1 bereits offen ist, soll die App beendet werden.

  2. Problem:
    Wenn ich von GUI 2(VerlaufsGUI) mit einem Button zu GUI 1(MainGUI) gehe, haben die Buttons ihre Funktion verloren und ich kann nicht mehr rechnen.

Ich hoffe wirklich, dass ihr ein paar Ideen habt, weil ich einfach nicht weiter komme. Außerdem muss ich die App bald fertig haben :(
Falls ihr Quellcodeelemente braucht, sagt bescheid.

Vielen Dank
OverBurned

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

20.12.2014, 19:16:15 via Website

Hallo OverBurned,
Herzlich wilkommen hier im Forum :)


Solange die Funktion des Back Buttons nicht überschrieben wird, geht sie eigentlich immer zur letzten Activity zurück.
Bitte zeig uns mal den Code der BackButton-Methode und den Aufrufscode der 2. Activity [Gui2]

Zu Problem 2.
Wie ist denn deine Main vom Code her aufgebaut?
Am besten hier mal die onCreate posten.

LG APscal

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

Antworten
OverBurned
  • Forum-Beiträge: 49

20.12.2014, 19:37:09 via Website

Erstmal danke für die schnelle Hilfe!

    @Override
public boolean onKeyDown(int keyCode, KeyEvent event){
    if (keyCode == KeyEvent.KEYCODE_BACK && mainisopen == false){
        Intent intent = new Intent (this, MainActivity.class);
        this.startActivity(intent);
        mainisopen = true;
    }
    else if (keyCode == KeyEvent.KEYCODE_BACK && mainisopen == true){
        this.finish();
    }
    return super.onKeyDown(keyCode, event);
}

So sieht meine onKeyDown Methode derzeit aus. Ich weiß das sie so nicht stimme kann, da ich ja jedes mal die App sozusagen neu öffne. Hab ich allerdings keine onKeyDown Methode beendet sich die App wenn ich den Back Button drücke.
Jetzt ist mir gerade beim kopieren der Methode folgende Idee gekommen:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
    if (keyCode == KeyEvent.KEYCODE_BACK && mainisopen == false){
        setContentView(R.layout.activity_main);
        mainisopen = true;
    }
    else if (keyCode == KeyEvent.KEYCODE_BACK && mainisopen == true){
        this.finish();
    }
    return false;
}

Wenn ich jetzt noch Problem 2 hinbekomme hätte ich das ganze doch gelöst oder nicht?

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    // Es wird ein neues Rechner-Objekt erstellt der Klasse Rechner.java erstellt
    hrechner = new Rechner();
    liHistory = new ArrayList<String>();
    importButton();
}

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

20.12.2014, 19:54:43 via Website

  1. Du verwendest die onKeyDown Methode für das abfangen des Backbuttons, das ist eine Vraltete Methode die bis Android 2.0 war.
    Ab 2.0 gibt es eine onBackPressed() methode: http://stackoverflow.com/questions/2000102/override-back-button-to-act-like-home-button

Und NEIN du kannst nicht einfach das layout deiner anderen Activity setzen denn dann siehst du zwar das Layout aber die genaze Logik (alle Buttons etc. funktionieren nicht)
Übernehme einfach mal das onBackPressed Beispiel aus dem link von mir und schmeiss das Keypredded aus deinem Code

  1. Ich nehme an dass sich entweder sich das 2. Problem von allein löst wenn Problem 1 behoben ist oder du benötigst noch eine onResume in deiner ersten Activity in der du die Buttons nochmal lädst und deine click Listener setzt.
    Aber schau erstmal ob sich das nicht vonn allein löstt wenn du Prolem 1 behoben hast.

Lg

— geändert am 20.12.2014, 19:55:04

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

Antworten
OverBurned
  • Forum-Beiträge: 49

20.12.2014, 20:33:19 via Website

Also ich glaub ich bin zu dämlich dafür. Ich hab mir das jetzt gefühlt 20 mal durchgelesen.
Was muss in die onBackPressed Methode?

Sorry das ich da jetzt so auf dem Schlauch stehe.

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

20.12.2014, 20:34:31 via Website

Kein Probelm, so onBackPressed sollte so aussehen:

@Override
public void onBackPressed() {
    moveTaskToBack(true);
}

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

Antworten
OverBurned
  • Forum-Beiträge: 49

20.12.2014, 20:39:14 via Website

Oh ok. Dann hab ich das doch richtig verstanden, denn genau so habe ich das jetzt auch implementiert.

Allerdings ist es jetzt so wenn ich die App starte, dass wenn ich die Back Taste benutze die GUI invisible gestzt wird. Also es sieht aus als wenn sie beendet wird, aber wenn ich sie wieder starte kommt folgender fehler:

Activity not started, its current task has been brought to the front

Aber die App kommt wieder in den Vordergrund und funktioniert auch.

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

20.12.2014, 20:40:50 via Website

Wie machst du denn dein intent aus der Main?
Könntest du den Codeabschnitt mal posten?

LG

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

Antworten
OverBurned
  • Forum-Beiträge: 49

20.12.2014, 20:44:16 via Website

Welchen genau meinst du?

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

20.12.2014, 20:46:27 via Website

Ich mieine den Codeabschnitt indem du das Intent zur 2. Actiivitiy erstellt und startest.

Lg

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

Antworten
OverBurned
  • Forum-Beiträge: 49

20.12.2014, 20:49:30 via Website

Achso, dass habe ich anders gelöst. Ich hatte das so in einem Tutorial gesehen.

    public void window(int pDevice){
    if (pDevice == 1){

        setContentView(R.layout.history);
        mainisopen = false;

        ArrayAdapter<String> adapterHistory = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, liHistory);

        ListView lvHistory = (ListView) findViewById(R.id.lvHistory);
        lvHistory.setAdapter(adapterHistory);

    }
    else if (pDevice == 2){
        setContentView(R.layout.information);
        mainisopen = false; 
    }
    else if (pDevice == 3){
        setContentView(R.layout.functions);
        mainisopen = false;     
    }
    else if (pDevice == 4){
        setContentView(R.layout.activity_main);
        mainisopen = true;
    }
}

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

20.12.2014, 20:56:28 via Website

Na ja das ist semioptimal...
Ich würde für deden Screen eine Acitvity machen und diese Per Inents öffnen etc.
So kannst du deine kompletten Probleme lösen.
Ich hatte dir oben diese vorschlage gemacht, da ich davon ausging dass du mehrere Activities benutzt.

->Mehere Activities erstellen welche jeder eine andere Funktion erfült.

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

Antworten
OverBurned
  • Forum-Beiträge: 49

20.12.2014, 21:00:23 via Website

ok danke dann setz ich mich da gleich mal ran

Antworten
OverBurned
  • Forum-Beiträge: 49

20.12.2014, 21:14:12 via Website

public void activityImpressum (){
    //intent
    mainisopen = false; 
}

wie sollte der intent dann aussehen?

    Intent i = new Intent(?.this, ?.class);
    startActivity(i);

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

20.12.2014, 21:23:37 via Website

 Intent i = new Intent(this, Impressum.class); //this beschreibt die aktuelle Activity bzw. den Context und //Impressum.class beschreibt deine Impressum Activitiy als eigene Klassse/Datei
startActivity(i);

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

Antworten
OverBurned
  • Forum-Beiträge: 49

20.12.2014, 21:33:01 via Website

Ich bekomme eine Fehlermeldung bei history.class.
history ist meine xml Datei für die ListView.

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

20.12.2014, 21:35:13 via Website

Ja du musst in deiner IDE(Entwicklungsumgebung) eine neue Klasse/activity als neue Date erstellen und diese Histry nennen.
Dann kannst du auch ein Intent dahin machen.

Ich galube du solltest dir die Grundlagen (noch) mal anschauen, hier mal ein paar Vorschläge: https://www.nextpit.de/forum/585102/buecher-und-nachschlageseiten-zur-entwicklung-mit-fuer-android

LG

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

Antworten
OverBurned
  • Forum-Beiträge: 49

21.12.2014, 16:16:51 via Website

Wie sollte das mit den Intents denn genau aussehen?

Intent History = new Intent(this, HistoryActivity.class);
    startActivity(History);

Das funktioniert leider nicht :(

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

21.12.2014, 16:29:54 via Website

Was funktioniert nicht?
Stürtzt die App ab?
Kommt ein Fehler in LogCat?
Ohne weitere Infos kann ich dir nicht helfen.

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

Antworten
OverBurned
  • Forum-Beiträge: 49

21.12.2014, 16:36:40 via Website

ok ich hab jetzt noch ein bischen rumprobiert. Diese Activity enthält eine ListView die mir den Verlauf anzeigen soll.

    public void activityHistory (){

    Intent History = new Intent(this, HistoryActivity.class);
    startActivity(History);
    mainisopen = false;

    ArrayAdapter<String> adapterHistory = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, liHistory);

    ListView lvHistory = (ListView) findViewById(R.id.lvHistory);
    lvHistory.setAdapter(adapterHistory);
}

So rufe ich sie auf. Das habe ich aus einem Tutorial.

Wenn ich die Activity aufrufe, kommt ein alert Fenster und sagt mir, dass ein Fehler aufgetreten ist und die App gestoppt wird. Die App beendet sich und das History fenster öffnet sich, aber mit einer leeren List View. DIese Methode wird in meiner MainActivity ausgeführt

— geändert am 21.12.2014, 16:38:49

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

21.12.2014, 16:44:02 via Website

So ist es aber falsch.
Du kommst um die Grundlagen nicht herum... so wird das nie was.
Schau dir mal das an: http://www.mkyong.com/android/android-activity-from-one-screen-to-another-screen/
Hier ist beschrieben wie man das mit den 2 Activities macht.

-> Daraus folgt, der Code für die ListView muss in der 2. Activity stehen sonst kann da nichts laufen.
Die Daten kannst du später per intent mitgeben und auf der anderen Seite wieder lesen.
Ich denke für dich ist es erstmal wichtig etwas Grundverständnis für Android Activities etc.
Am besten du holst dir ein Buch oder liest Tutorials [die nicht zu alt sind!(!)).



Grundprinzip:

Activity 1 - Intent -> startActivity 2 |endOnActivity
//Activity 1 startet Activity 2 und wird daduch inaktiv da die 2. nun aktiv ist.

Activity 2 - (//wird duch intent aufgerufen) - onCreate - ListView + Buttons etc.

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

Antworten
OverBurned
  • Forum-Beiträge: 49

21.12.2014, 16:50:23 via Website

Ja ich schreib das gerade noch mal um

Antworten
OverBurned
  • Forum-Beiträge: 49

21.12.2014, 17:06:35 via Website

Wie bekomme ich denn eine Liste mit einem Intent übergeben? Ich hab das jetzt mit putExtra probiert aber das geht leider nicht.

Antworten
OverBurned
  • Forum-Beiträge: 49

21.12.2014, 17:23:34 via Website

Ok super das übergeben klappt und das starten der Activity auch! :)
Nur leider funktioniert die Back Taste leider immer noch nicht

@Override
public void onBackPressed() {
    moveTaskToBack(true);
}

eigentlich müsste das doch jetzt funktionieren.

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

21.12.2014, 17:29:04 via Website

Ja eigentlich...
Bitte beschreibe mal was beim back Button drücken passiert.
Ansonsten kannst du das moveTaskToBack(true); mal duch finish(); ersetzen und schauen was dann passiert.

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

Antworten
OverBurned
  • Forum-Beiträge: 49

21.12.2014, 17:30:41 via Website

Die App wird einfach nur beendet und wenn ich sie wieder starte kommt in der Konsole folgende Meldung:

Activity not started, its current task has been brought to the front

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

21.12.2014, 17:32:38 via Website

Noch irgendwelche anderen Fehler aus LogCat [rot markiert]
Hast du alle Activities in der manifest registriert?

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

Antworten
OverBurned
  • Forum-Beiträge: 49

21.12.2014, 17:41:55 via Website

Die Activities wurden automatisch im manifest registriert und ich habe das auch noch mal geprüft.

Bei LogCat habe ich von diesen beiden Typen ein paar fehler:

libEGL (keine Applikation)

HostWithRpcCallBack (com.google.android.wearable.app)

Antworten
pepperonas
  • Forum-Beiträge: 434

21.12.2014, 18:02:58 via Website

OverBurned

Die App wird einfach nur beendet und wenn ich sie wieder starte kommt in der Konsole folgende Meldung:

Activity not started, its current task has been brought to the front

Das ist normal. Stelle mal die IDE von "Debug" auf "Run" um, dann sollte die Warnung weg sein (ist nämlich kein Fehler) ;)

Open Source

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

21.12.2014, 18:03:30 via Website

Die interssieren ja nicht, wenn du die App im DebugModus startest sollten da eigentlich aussagekräftige meldungen kommen.
Ich verstehe jetzt nich wieso das so ist "im Normalfall" dürfte das nicht sein.

  1. Bitte poste nochmal deinen aktuellen Code vlt. hab ich was übersehen.

  2. Das ist in einer ACtivity standart, was passiert wenn du das onBackPressed ganz herauslöschst?

Lg

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

Antworten
OverBurned
  • Forum-Beiträge: 49

21.12.2014, 18:08:11 via Website

Das gibts ja nicht :)
Jetzt habe ich die onBackPressed Methode rausgenommen und auf einmal geht es! Ich muss jetzt jetzt noch ein paar mehr Activitys schreiben um das genau zu testen aber es scheint zu gehen!
Welchen Codeabschnitt hättest du denn gerne?

VIELEN VIELEN DANK

Antworten
pepperonas
  • Forum-Beiträge: 434

21.12.2014, 18:26:34 via Website

Hmm, sicher dass jetzt alles funktioniert? Warum hast du denn ursprünglich onBackPressed überschrieben? Kann mir gut vorstellen, dass jetzt ein anderes "Problem" aufgetreten ist, du es aber noch nicht erkannt hast^^

Was passiert nun mit

moveTaskToBack(true);

?

Aus der Ferne sieht es für mich so aus, als wenn das der Code sein könnte, den du suchst...

@Override
public void onBackPressed() {
    moveTaskToBack(true);
    finish();
}

Open Source

Antworten
OverBurned
  • Forum-Beiträge: 49

21.12.2014, 18:28:45 via Website

Ich hab onBackPressed ganz gelöscht. Ich schreibe gerade noch eine Activity um mir das noch einmal anzuschauen.

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

21.12.2014, 19:34:52 via Website

@pepperonas:
Du hast damir recht, der Stadartcode lautet so wenn onBack pressed nicht überschreiben wird.
ich hatte mich da am Anfang geirrt und etwas falsches gesagt.

Lg

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

pepperonas

Antworten
OverBurned
  • Forum-Beiträge: 49

22.12.2014, 21:34:41 via Website

ok jetzt ich noch eine Idee, wie ich folgendes Programmiere:

In Activity 2 wird ein Button gedrückt. Dadurch soll Activity 1 geöffnet werden, 2 Methoden in Activity 1 ausgeführt und etwas in ein Textfeld geschrieben werden.

Hat jemand ein Idee bzw geht das überhaupt? Weil ich müsste doch dann den Intent im onClick von Activity 1 resumen oder nicht ?

Antworten
pepperonas
  • Forum-Beiträge: 434

22.12.2014, 21:40:52 via Website

onNewIntent (Intent intent) überschreiben...
Dort bekommst du den Intent im Paramter übergeben und holst die Bundle-Daten heraus.

mehr dazu

Open Source

Antworten
OverBurned
  • Forum-Beiträge: 49

23.12.2014, 13:48:28 via Website

Das scheint auf jeden Fall schon mal das richtige zu sein danke!
Aber ich hab das jetzt so geschrieben:

 @Override
protected void onNewIntent(Intent intent) 
{
    super.onNewIntent(intent);
    if(intent.getStringExtra("methodName").equals("myMethod"))
    {
        if (hrechner.StackCheck() == false){

            String valueHistory = hrechner.Wurzel();
            liHistory.add(valueHistory);
            EditText tfEingabe = (EditText) findViewById(R.id.tfEingabe);
            tfEingabe.setText(hrechner.getTop());
        }
    }
}

Nur er macht jetzt leider nicht das, was in der if Verzweigung steht :( ich habe es auch schon mit einem else Teil probiert. Die Activity öffnet sich allerdings!

Intent i= new Intent(OperatorActivity.this, MainActivity.class);
        i.putExtra("methodName","myMethod");//goes to previous INtent
        startActivity(i);//will trigger only myMethod in MainActivity

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

23.12.2014, 13:59:13 via Website

Welchen Wert liefert denn hrechner.StackCheck() zurück?
Ab besten mal ausgeben lassen oder nen Breakpoint setzen.

— geändert am 23.12.2014, 13:59:24

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

Antworten
Ludy
  • Admin
  • Forum-Beiträge: 7.957

23.12.2014, 14:01:57 via Website

Hallo OverBurned,

prüfe doch mal mit System.out.prinln was im Intent steht System.out.printIn(intent.getStringExtra("methodName"));
Sollte der leer sein ist das weist Du wo der Fehler liegt.

methodName würde ich als Konstante definieren um Schreibfehler auszuschließen.

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

pepperonas

Antworten
OverBurned
  • Forum-Beiträge: 49

23.12.2014, 14:28:45 via Website

hrechner.StackCheck sollte false zurück liefern. Ich habe jetzt auch noch einmal ohne StackCheck probiert und da geht es leider auch nicht.

System.out.printIn liefert leider nichts zurück bzw ich kann es nicht auslesen. Ich habe jetzt versucht mir in LogCat etwas zurückgeben zu lassen, aber da bekomme ich komische Weise auch nichts. Ich hab das mit Log.d probiert.

Antworten
Ludy
  • Admin
  • Forum-Beiträge: 7.957

23.12.2014, 14:48:19 via Website

Hast Du das hier in der Activity eingepflegt?

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    onNewIntent(getIntent()); // wichtig die Übergabe!!
}

Edit: Bitte immer den Intent auf Inhalt prüfen, sonst bekommst Du ne Exception, wenn er Null ist.

— geändert am 23.12.2014, 14:51:20

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Antworten
OverBurned
  • Forum-Beiträge: 49

23.12.2014, 14:53:01 via Website

Aber dann versucht er doch die Übergabe jedes mal, wenn die Activity gestartet wird. Aber das ist ja meine erste Activity und wenn ich dann die App starte versucht er das ja auch, aber es ist kein Intent vorhanden oder nicht?

Ich hab das gerade geteste und ja dann geht die App nicht mehr. Sie gibt schon Fehler beim starten zurück.

— geändert am 23.12.2014, 14:55:10

Antworten
OverBurned
  • Forum-Beiträge: 49

23.12.2014, 16:17:00 via Website

Soll ich das Projekt mal hochladen? Weil ich hab sonst noch nichts gefunden wie ich das machen kann

Antworten
Ludy
  • Admin
  • Forum-Beiträge: 7.957

23.12.2014, 17:17:35 via Website

StartActivity:

public class StartActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       Intent i = new Intent(this, MainActivity.class);
       i.putExtra("methodName", "myMethod");// goes to previous INtent
       startActivity(i);// will trigger only myMethod in MainActivity
    }
}

ZweiActivity:

public class ZweiActivity extends Activity {

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    if (intent.getStringExtra("methodName") != null) { // WIE schon gesagt prüfen auf NULL
        if (intent.getStringExtra("methodName").equals("myMethod")) {
            myMethod();
        }
    }
}

public void myMethod() {
    Log.e("Test", "myMethode");
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    onNewIntent(getIntent());
}
}

Die erste sendet den Intent, in der Zweiten wird er an OnNewIntent übergeben und geprüft ob der String enthalten ist.

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Antworten
OverBurned
  • Forum-Beiträge: 49

23.12.2014, 17:37:45 via Website

Ok so funktioniert es auf jeden Fall. Dass Problem war übrigens doch der StackCheck.

Jetzt starte ich bloß noch ne neue Activity wenn ich das mache. Ist es möglich, dass ich die alter einfach nur wieder aufrufe und keine neue starte? Weil sonst müsste ich meinen Verlauf und meinen Stack noch mit übergeben.

Antworten
OverBurned
  • Forum-Beiträge: 49

24.12.2014, 11:02:31 via Website

Gibt es eine möglichkeit, einen Intent einen Stack hinzuzugügen? Weil dann könnte das funktionieren. Allerdings bräuchte ich dann noch eine Möglichkeit, die App zu beenden.

Antworten
OverBurned
  • Forum-Beiträge: 49

24.12.2014, 15:06:16 via Website

Liebe Community,

ich habe hoffentlich nur noch dieses eine Problem in meinem Projekt.
Ich habe eine Activity 1, welche über eine GUI für einen Taschenrechner, eine Liste und einen Stack verfügt.
Außerde habe ich eine Activity 2 mit einigen Buttons.

Ich rufe Activity 2 von Activity 1 aus auf. Wenn ich jetzt in Activity 2 auf einen Button klicke, soll sich Activity 1 wieder öffnen und es sollen einige Methoden ausgeführt werden. Allerdings dürfen meine Liste und der Stack nicht verloren gehen!

Ich hoffe ihr habt eine Idee wie das funktionieren könnte.

Falls ihr das Projekt oder Quelltext sehen wollt, kann ich den hier noch reinkopieren.

LG

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

24.12.2014, 15:11:27 via App

Eine Liste kannst du auch per Intent übergeben. Ich würde es aber besser finden wenn diese List irgendwo gespeicher ist und du von überall Zugiff darauf hast.

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

Antworten
OverBurned
  • Forum-Beiträge: 49

24.12.2014, 15:29:38 via Website

Die Liste war auch nicht das große Problem. Das ist leider der Stack. Aber das mit dem Speicher ist ne gute Idee wenn das geht.

Wie kann ich die denn speichern?

Antworten