onCreate einer Klasse wird nicht aufgerufen

  • Antworten:4
  • Bentwortet
-kw
  • Forum-Beiträge: 6

17.01.2017, 16:06:23 via Website

Hallo zusammen,

ich bins nochmal.

Ich habe eine Frage zu folgendem Code. Kann mir bitte jemand erklären, was ich falsch mache, ich verstehe es nicht :(

Vom Grundprinzip her möchte ich eine ListView mit Daten füllen. Ich habe dazu versucht, diesen Code nachzubauen: h t t p ://stackoverflow.com/a/4540859

Ich habe also die Klasse ListViewDemo 1:1 übernommen, die Layout-Datei auch.
In meiner mainActicvity habe ich einen Button hinterlegt. Wenn ich diesen Button drücke, möchte ich die Klasse instanziieren:

public void onClick(View v) {
ListViewDemo listviewhandle = new ListViewDemo();
}

Nach meinem Verständnis müsste damit die OnCreate-Methode aufgerufen und die View wechseln. Das passiert nicht. Es passiert einfach nichts, auch keine Ausschrift in der Konsole. Kurze Frage: Warum?image

image

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

17.01.2017, 16:18:26 via Website

Hallo kw,

deine ListView Demo ist eine Klasse und erbt von Activity.
Da in Android eine Activity was spezielles ist, kannst du diese nciht einfach mit dem new-Schlüsselwort instanzieren, du musst diese über einen Intent staten:

Intent i = new Intent(context,ListViewDemo.class);
startActivity(i); //hier wird es gestartet

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

Antworten
-kw
  • Forum-Beiträge: 6

17.01.2017, 16:40:51 via Website

Hallo Pascal,

Danke dir, das verstehe ich! :)

Ich musste etwas probieren, bis ich herausgefunden habe, dass context mit MainActivity.this und nicht nur mit this ersetzt wird, aber es geht jetzt. Wieder etwas gelernt. Danke! :)

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

17.01.2017, 17:00:50 via App

Hallo -kw!

Super, wenn deine Frage geklärt ist, setze doch bitte noch deinen Thread auf "Beantwortet"!

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

Antworten
-kw
  • Forum-Beiträge: 6

17.01.2017, 20:28:53 via Website

Erledigt! =)

Pascal P.

Antworten