Android ArrayList <-> ArrayAdapter <-> ListView

Holger_Hessling

Aktives Mitglied
Hallo,

in einer eigenen Beispiel-App habe ich ein Verhalten, das ich mir nicht erklären kann. Kann bitte einer von Euch Licht ins Dunkel bringen?

Zwei Aktivities. Die MainActivity hält eine statische ArrayList, deren Inhalt sie über eine ListView darstellt. Die zweite Activity erzeugt einen neuen Eintrag in der statischen ArrayList.

Aus der zweiten Activity komme ich über zwei Möglichkeiten zurück zur MainActivity. Einmal über den Zurück-Pfeil aus der AppBar und einmal über den Zurück-Button des Handys.

Beim Weg zurück über den Button des Handys verändert sich die ListView nicht. Der neu erzeugte Eintrag erscheint nicht.

Beim Weg zurück über den Pfeil der AppBar wird offensichtlich der ArrayAdapter bemüht, wodurch der neue Eintrag erscheint. (Auch zuvor nicht dargestellte, neue Einträge sind jetzt zu sehen.)

Beim Weg zurück über den Zurück-Button des Handys wird der ArrayAdapter offenbar nicht bemüht. Hier hilft in onResume() der Aufruf von notifyDataSetChanged() des ArrayAdapters.

Meine Frage ist nun, warum wird der Adapter einmal bemüht und einmal nicht?

Gruß
Holger
 

Holger_Hessling

Aktives Mitglied
Hi Florian,

nein, das habe ich nicht. Da muß ich mal drüber nachdenken, warum ich das nicht(!) mache :-D Liegt ja eigentlich auf der Hand, daß man eine Activity mit finish() beendet, oder nicht, oder doch, oder oder oder

Oh je, da hast Du mich ja auf eine große Verständnislücke aufmerksam gemacht :-D

Gruß
Holger
 

Holger_Hessling

Aktives Mitglied
Hallo,

habe gestern mal die lifecycles mitgeschrieben. Hab zweimal die ChildActivity über einen Button in der MainActivity gestartet und und dann einmal per AppBar und einmal per BackButton beendet. Über mein gesamtes "Konzept" hab ich auch nachgedacht und werde die ganze Sache eh anders lösen.

Aber ein Punkt verstehe ich ganz un gar nicht. Warum gelangt im Fall 'Back Button an AppBar' die MainActivity in den Destroy cycle? Würde mich riesig über Erklärungen freuen!

Danke, Gruß
Holger


Start MainActivity:

Main onCreate()
Main onStart()
Main onResume()

Intent to start ChildActivity:

Main onPause()
Child onCreate()
Child onStart()
Child onResume()
Main onStop()

Back Button on AppBar: (no finish() at ChildActivity)

Child onPause()
Main onDestroy()
Main onCreate()
Main onStart()
Main onResume()
Child onStop()
Child onDestroy()

Intent to start ChildActivity:

Main onPause()
Child onCreate()
Child onStart()
Child onResume()
Main onStop()

Back Button on mobile: (no finish() at ChildActivity)

Child onPause()
Main onRestart()
Main onStart()
Main onResume()
Child onStop()
Child onDestroy()
 

Holger_Hessling

Aktives Mitglied
So, hab's gelöst bekommen. In der ChildActivity fange ich den BackButton und den HomeButton (das ist der Zurück-Button der AppBar) ab und rufe einfach finish(); auf. Dann wird in jedem Fall der Back Stack zurück gegangen. Und dabei wird die MainActivity wieder gestartet und eben nicht zuvor zerstört.

Danke an Euch Helfenden!!!!

Code:
@Override
public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()) {
        case android.R.id.home:
            finish();
            return true;
    }
    return super.onOptionsItemSelected(item);
}

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

Flown

Administrator
Mitarbeiter
Navigation up und back sind zwei verschiedene Dinge, haben auch unterschiedliche Auswirkungen. Ob hier immer finish() auzurufen richtig ist, hängt von deinem UseCase ab.
 

Holger_Hessling

Aktives Mitglied
Ich verstehe was Du mir sagen willst. In meinem Verständnis von der Funktion meiner geplanten App, soll in diesem Fall immer zu meiner MainActivity zurück gegangen werden.

Mag sein, daß mit wachsendem Verständnis über die Funktionsweise des Android Systems meine jetzige Lösung wieder geändert wird. Bis hierher bin ich mal zufrieden und kann mit meiner App weiter machen.

Danke, Gruß
Holger
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Android ArrayList sortieren mit 2 Werten ohne thencomparing , Wie? Android & Cross-Platform Mobile Apps 10
J Android Studio - ArrayList - Selected Item ermitteln Android & Cross-Platform Mobile Apps 13
B Android Probleme mit ArrayList Android & Cross-Platform Mobile Apps 6
M Android List<Sprite> sprites = new ArrayList<Sprite>() REMUVE Android & Cross-Platform Mobile Apps 2
K Problem mit arraylist und button Android & Cross-Platform Mobile Apps 16
F Android ArrayList nicht funktional in Android!? Android & Cross-Platform Mobile Apps 6
W Picasso in ArrayAdapter Android & Cross-Platform Mobile Apps 13
J ArrayAdapter zeigt Liste nicht an Android & Cross-Platform Mobile Apps 0
H Android Probleme mit SearchView in ArrayAdapter Android & Cross-Platform Mobile Apps 7
S Android ListFragment & ArrayAdapter - Button-Werte werden vergessen Android & Cross-Platform Mobile Apps 0
W Android Bestimmen von welchem Typ die Objekte in einem ArrayAdapter sind Android & Cross-Platform Mobile Apps 3
P Android Sort Methode von ArrayAdapter überschreiben Android & Cross-Platform Mobile Apps 5
A Probleme mit ListView / ArrayAdapter Android & Cross-Platform Mobile Apps 3
J ListView Item individuell einfärben Android & Cross-Platform Mobile Apps 17
I Android ListView, Werte aktualisieren ohne die Liste komplett neu zu laden Android & Cross-Platform Mobile Apps 5
W ListView OnItemClicklistener setzen mit Ausgabe Android & Cross-Platform Mobile Apps 35
K Null-Pointer-Exception in ListView - wird über Datenbank gefüllt Android & Cross-Platform Mobile Apps 1
I Android ListView (Custom) soll auf Hardwaretasten nicht reagieren. Android & Cross-Platform Mobile Apps 10
W ListView und Arrays... Android & Cross-Platform Mobile Apps 68
W Android Wieso kann ich keine ListView mehr zum Layout hinzufügen? Android & Cross-Platform Mobile Apps 1
W Android Kann keine ListView mehr in der MainActivtiy anzeigen, obwohl noch sehr viel Platz frei ist Android & Cross-Platform Mobile Apps 1
L ListView aktuallisiert sich nicht Android & Cross-Platform Mobile Apps 15
N Probleme mit custom dynamic ListView Android & Cross-Platform Mobile Apps 15
L Android ListView kollabiert in Scrollview Android & Cross-Platform Mobile Apps 9
A ImageButton in ListView Item bei klick ändern Android & Cross-Platform Mobile Apps 3
J Android Suche in einer ListView Android & Cross-Platform Mobile Apps 3
L Android ListView swipe zum löschen Android & Cross-Platform Mobile Apps 1
B Android ListView set custom check Image and delete Android & Cross-Platform Mobile Apps 0
M Android ListView wird nicht dargestellt Android & Cross-Platform Mobile Apps 2
Maresuke Android Android ListView Textfarbe und Texthintergrund ändern? Android & Cross-Platform Mobile Apps 5
A Android Problem mit ListView und OnItemClickListener.. Android & Cross-Platform Mobile Apps 10
S Listview Einträge aus "xml" Datei Android & Cross-Platform Mobile Apps 1
S Android Studio MySql Daten in Listview mit sub Item Android & Cross-Platform Mobile Apps 11
S Textdatei in ListView einlesen Tutorial gesucht!? Android & Cross-Platform Mobile Apps 3
kaoZ Tutorial .xml Layouting für z.B ListView elemente Android & Cross-Platform Mobile Apps 7
M Android ListView und Checkbox Android & Cross-Platform Mobile Apps 6
L TableRows in ListView darstellen Android & Cross-Platform Mobile Apps 2
M ListView mit ListAdapter füllen Android & Cross-Platform Mobile Apps 5
U Android ListView Frage Android & Cross-Platform Mobile Apps 6
L Android SearchBox für Custom Listview Android & Cross-Platform Mobile Apps 5
H Android ListView Images aus dem Internet via Thread Android & Cross-Platform Mobile Apps 3
T Android: ListView-Adapter: Adapter wird ständig aufgerufen Android & Cross-Platform Mobile Apps 2
H Android SAX|ListView NullPointerException Android & Cross-Platform Mobile Apps 2

Ähnliche Java Themen

Neue Themen


Oben