Activity aufrufen und beenden

  • 15 Antworten
  • Neuester Beitrag
Diskutiere Activity aufrufen und beenden im Android App Entwicklung im Bereich Betriebssysteme & Apps.
M

maksimilian

Ambitioniertes Mitglied
Hallo Ihr,

in einer MainActivity ordne ich den 3 Punkten in der App Bar mit der Methode onCreateOptionsMenu ein Options-Menu zu, in welchem mehrere Optionen ausgewählt werden können. Mit einer dieser Optionen soll eine Aktivität erzeugt werden, in welcher mit setContentView eine eigene Oberfläche angezeigt wird. In dieser Oberfläche befinden sich Buttons, mit welchen Aktionen ausgelöst werden. Einer dieser Buttons soll das Beenden der Aktivität auslösen. Nun meine Frage:
Wie erzeuge ich die Aktivität und wie kehre ich aus ihr zurück zur MainActivity ?

maksimilian
 
J

jogimuc

Stammgast
Hallo

Wie erzeuge ich die Aktivität und wie kehre ich aus ihr zurück zur MainActivity ?
Hast du nur in der MainAtivity das Lauyout getauscht oder hast du eine Neue Activity (andere Klasse und Datei) mit einen Intent aufgerufen?


Wenn du das Layout in der Acktivty tauscht hast (keine gute Programmierung) musst du wider alle Views im neuen Layout mit FindviewByID suchen und Listner erstellen, und auch nach dem Tausch zurück das gleiche wider.
 
Zuletzt bearbeitet:
koje71

koje71

Neues Mitglied
Beim Klick auf den Menüeintrag wird mit einem "Intent" die neue Activity gestartet. In dieser kann per Click Listener die "finish()" Methode aufgerufen werden. Diese Methode beendet die neue Activity und kehrt zurück.

Aber Fragmente fände ich auch besser, da bleibt das Manifest übersichtlicher..
 
M

maksimilian

Ambitioniertes Mitglied
Danke, Euch beiden. Ich taste mich noch vor. Bisher habe ich nur das Layout getauscht. Es war mir klar, dass das nicht die Lösung ist.
Intent oder Fragment ? Wie sieht das in etwa aus ?
 
J

jogimuc

Stammgast
Zuletzt bearbeitet:
M

maksimilian

Ambitioniertes Mitglied
Ja, den Link hatte ich bereits gefunden und mit dessen Hilfe und dem eine Activity implementiert. Nun stelle ich fest, dass bei Start der Activity die onPause Methode der MainActivity aufgerufen wird. Da ich für diese noch keinen Code vorgesehen habe, stirbt die App. Wie soll in der onPause Methode der MainActivity reagiert werden ?
 
koje71

koje71

Neues Mitglied
Eigentlich muss da gar kein Code rein, die App scheint aus einem anderen Grund zu sterben. Kannst ja mal das Log zeigen..
 
J

jogimuc

Stammgast
Hast du die Activity mit Hilfe der IDE AS erstellt und auch im Manifest hinzugefügt?
Wie das geht steht auch im link.

Wenn du die Methode überschreibtst musst du in ihr auch die Superklasse aufrufen.
Code:
Override

protected void onPause() {

    super.onPause();


}
Tipp wenn du die Methode mit Hilfe der IDE implementirst wird sie automatisch mit der der Superklasse erstellt.
 
Zuletzt bearbeitet:
J

jogimuc

Stammgast
Habe dein Text jetzt nochmal gelesen.
Du redest von der MainActivity richtig?
Du hast also die onPause in der MainActivity überschrieben?

Das brauchst du eigentlich gar nicht.

Wieso hast du die überschrieben?
 
M

maksimilian

Ambitioniertes Mitglied
Ich habe die Activity jetzt mal über AS erzeugt, und es funktioniert. Ist es notwendig, dass die Activity in einer eigenen Java-Datei steht ? Wenn ja, wie sieht es mit globalen Variablen aus ?
Beitrag automatisch zusammengefügt:

Die neue Activity erhält die Überschrift der MainActivity. Wie kann man das ändern ?
 
Zuletzt bearbeitet:
J

jogimuc

Stammgast
Zuletzt bearbeitet:
M

maksimilian

Ambitioniertes Mitglied
Danke. Habe noch einiges (schwer untertrieben) zu lernen.
 
J

jogimuc

Stammgast
Code:
ActionBar actionBar = getSupportActionBar();
        if(actionBar != null)
        {         
            actionBar.setTitle("Activity 2");
        }
Beitrag automatisch zusammengefügt:

Meine Frage warum du onPause überschreibst hast du nicht beantwortet.
 
Zuletzt bearbeitet:
M

maksimilian

Ambitioniertes Mitglied
jogimuc schrieb:
Code:
ActionBar actionBar = getSupportActionBar();
        if(actionBar != null)
        {        
            actionBar.setTitle("Activity 2");
        }
Beitrag automatisch zusammengefügt:
Danke für den Tipp.
jogimuc schrieb:
Meine Frage warum du onPause überschreibst hast du nicht beantwortet.
Sorry! Ich habe zum Kennenlernen alle Methoden der MainActivity deklariert und mit einem Log-Eintrag versehen, so dass im Trace zu erkennen ist, wann eine Methode aufgerufen wird. Das ist der einzige Grund.
Den Einfluss von Bewegungen des Handys auf den Ablauf der App ignoriere ich noch bzw. jetzt den Einfluss weiterer Activities.
 
J

jogimuc

Stammgast
Ok wenn du die Methode overridest musst immer die Superklasse mit aufrufen.
Du musst einfach gesagt die Kontrolle an Android zurückgeben. Die Klasse von der du erbst. Das ist die Superklasse.
 
M

maksimilian

Ambitioniertes Mitglied
Ja, das mache ich auch.
 
Ähnliche Themen - Activity aufrufen und beenden Antworten Datum
8
5
4