Mit Back-Button auf bestimmtes Layout zurück...

  • 6 Antworten
  • Neuester Beitrag
Diskutiere Mit Back-Button auf bestimmtes Layout zurück... im Android App Entwicklung im Bereich Betriebssysteme & Apps.
L

Lolipopkebab

Neues Mitglied
Hallo zusammen

Dies ist meine erste App also habt bitte ein bisschen Geduld...
Ich habe eine Listview dort drückt man auf ein Item und man kommt auf ein anderes Layout, names "activity_main_activity2". Auf diesem Layout wird nun ein Text angezeigt, wenn man dann aber auf den Back-Button drückt, sollte sich die App nicht schliessen sondern zurück auf das erste Layout mit der Listview gehen(Es heisst MainActivity).

So ich habe also dies versucht, leider ohne Erfolg...
Code:
public class MainActivity2Activity extends Activity {
    private boolean canClose = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_activity2);
}

    @Override
        public void onBackPressed() {
        if (canClose) {
            super.onBackPressed();
        } else {
            setContentView(R.layout.activity_main);
        }
    }

}
Könnt ihr mir helfen?
Vielen Dank
 
Jaiel

Jaiel

Experte
Wo ist das erste Layout vorher? In der vorherigen activity? Dann darfst du diese nicht finished oder du musst die neu starten....setcontentview sollte möglichst nur einmal aufgerufen werden
 
L

Lolipopkebab

Neues Mitglied
Hallo

Ja, das 1. Layout befindet sich in einer anderen Activity.
Wie kann ich die denn neustarten?

Vielen Dank
Lolipopkebab
 
Z

zumafx

Fortgeschrittenes Mitglied
Also bist du immer noch bei deiner "auf dem Holzweg"-Methode ?
Du hast ja hier: https://www.android-hilfe.de/forum/android-app-entwicklung.9/2-activity-mit-listview-wird-nicht-angezeigt.679048.html das ganze schonmal versucht ...

Also, du solltest erstmal verstehen, das ein Layout kein 2tes Fenster ist.
Eine Activity hat ein Layout, aber normal eben nur EINES.
Ich denk mal du willst von deiner Main ein zweites "Fenster" aufmachen und denkst dir,
das du nur das Layout tauschen musst.
Mach doch mal einfach folgendes:
Du machst einfach eine 2te Activity und nennst die activity2 und verpasst der dein 2tes
Layout.
In der ersten Activity (deiner Main) machste dir nen Button, in dessen onClick schreibts du
Code:
Intent intent = new Intent(this, activity2 .class);
startActivity(intent);
lass das laufen, drücke den Button und erfahre Wissen ;) :razz:

edit:
wenn du in der 2ten dann den Zurück-Button drückst, kommste wieder in dein 1tes Layout (sprich deine erste Activity)
 
missspelled

missspelled

App-Anbieter (In-App)
Hallo,
Jaiel hat es schon richtig gesagt, setContentView steht in jeder Activity nur 1x.
Im Prinzip sieht man daran immer recht deutlich, dass mit relativ wenig Vorahnung "einfach drauflos programmiert" wird. Da ich auch so gestartet bin und es heute besser weiß, kann ich nur dringend davon abraten "einfach los zulegen".
Gründe:
- zeitraubend
- nicht zielführend
- nervig

Daher mein Rat: https://developer.android.com/training/index.html
Ich würde meinen Hintern drauf verwetten, dass das End-Ergebnis deiner App ein ganz anderes sein wird, wenn du dieses Tutorial durchgearbeitet hast.
Ebenso wird sich die Frage dieses Threads dann erübrigt haben (und soooo viele andere Fragen ebenfalls) ;)

Klar, sind wir hier in einem Forum um Fragen zu stellen und auf Probleme Lösungen zu finden, aber ich bin mir zu >99% sicher, dass du mehr davon hast, wenn du dir das Tutorial durchliest, als wenn du funktionierenden Code erhälst, der dann aber immer noch mit Fragezeichen betrachtet wird. :)

Btw: onBackPressed zu überschreiben kann einen Rattenschwanz anderer Probleme mit sich führen. Meine Erfahrung: Nur überschreiben, wenn man wirklich einen sehr sehr guten Grund dafür hat. Gerade was die Navigation in deiner App angeht, geht es hin und wieder Hand-in-Hand mit weiterem zusätzlichen Überschreiben zB von "startActivity", um den BackStack wieder gerade zu biegen, den man unter Umständen auf halber Strecke gegen die Wand gefahren hat...

Wenn der Beitrag "böse" klingt, möchte ich nur kurz sagen, dass er nicht böse gemeint ist. Wie beschrieben habe ich persönlich auch einen ziemlich steinigen Weg in Android genommen. Wer sich diesen "Pain in the ass" ersparen will... (siehe oben..) ;)
 
Jaiel

Jaiel

Experte
also man kann eine contentview mehrmals setzen nur wird es da bestimmt probleme geben auch wenn ich sie nciht nennen kann: vllt out of memory...vllt illegalargumentex...vllt ein speciherleck der wiederum zu OOM führt....hängt von der implementierung ab...

Der GC "findet das gar nicht gut...nicht....ein...bisschen".(Dark Knight :))
 
L

Lolipopkebab

Neues Mitglied
Hallo zusammen

Vielen Dank für eure Hilfe. Nun komme ich mit den Activitys draus. Mein Problem von diesem Thread und auch dem vorherigen war nur, dass ich immer Layouts erstellt hatte und nicht ganze Activitys... Nun konnte ich alles perfekt lösen.

Herzlichen Dank
Lolipopkebab