Zugriff auf ein Objekt der MainActivity von einer anderen Klasse aus?

  • Antworten:2
Frank Rudolf
  • Forum-Beiträge: 215

26.01.2016, 19:19:34 via Website

Ich versuche von einer anderen Klasse (einem DialogFragment) aus auf ein zweidimensionales Array zuzugreifen. Dies geschieht mit:

MainActivity mainActivity = new MainActivity();
System.out.println(mainActivity.arr2DInfosGesamt.length);

Im obigen Falle (mit length) sagt er mir: Attempt to get length of null array. Wenn ich auf einen beliebigen Wert des Arrays zugreifen will, kommt eine NullPointerException oder so ähnlich. In der MainActivity läuft dagegen alles gut. Endet der Lebenszyklus von Variablen oder bestimmten Objekten vielleicht, wenn ich die MainActivity verlasse?

Wie kann ich also auf das Array von einer anderen Klasse aus zugreifen? Ich nehme an, dass mir dasselbe auch im Hinblick auf beliebige andere Variablen geschehen würde.

Hintergrund:
Im Code des DialogFragments führt das Neuanlegen von Datensätzen zur Notwendigkeit einer Datenaktualisierung. Dazu sollen die neuen Daten dem Array zugeführt werden, damit auch die neuen Daten in einem ListView angezeigt werden. Ansonsten würde ich die neuen Daten erst nach einem Neustart des Programms sehen, was mich kaum befriedigen würde.

— geändert am 26.01.2016, 19:22:28

Antworten
Frank Rudolf
  • Forum-Beiträge: 215

26.01.2016, 19:38:57 via Website

Habe inzwischen das Array statisch gemacht (static String [][] arr2DInfosGesamt; in der MainActivity). Bislang geht es damit.

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

26.01.2016, 21:49:29 via App

Von einer activity Bitte keine Instanz erstellen!Wenn dann statisch machen oder eigene Klasse erstellen.

Edit oder vom Fragment aus auf die Activity zugreifen und casten:

MainActivity ma = (MainActivity)getActivity();
ma.getArray(); // alles kannst dann damit machen...

— geändert am 26.01.2016, 22:34:35

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

Frank Rudolf

Antworten