extends Action mit startActivity()

  • Antworten:6
  • Bentwortet
Benny
  • Forum-Beiträge: 20

21.07.2011, 09:54:39 via Website

Hallo,

habe schon einige Foren und Seiten durchsucht aber nichts aussagekräftiges gefunden.

Mein Problem:

Ich will eine Klasse aus einem bestehenden Programm erweitern. Die Klasse lädt eine Datei herunter, diese Klasse wird von "Action" abgeleitet.
Ich habe vor die Heruntergeladene Datei direkt zu installieren. Der Code mit dem ich das realisieren will lautet wie folgt:

1String fileName = "/sdcard/app.apk";
2Intent intent = new Intent(Intent.ACTION_VIEW);
3intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive");
4startActivity(intent);

Wenn ich das in einer Activity mach funktioniert das wunderbar, nur in der von Action abgeleiteten Klasse mache kann ich startActivity nicht benutzen, hat jemand evtl. eine Idee wie ich es anders machen könnte ?

Vielen Dank schon mal im Vorraus

Antworten
Thomas L.
  • Forum-Beiträge: 58

21.07.2011, 10:04:01 via Website

1startActivity(intent);
ist eine Methode der Klasse Activity. Wenn du eine Klasse von Action ableitest, kann sie ja die Methode nicht kennen.

Kannst du die Klasse nicht von Activity ableiten?

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

21.07.2011, 10:11:01 via Website

Alternativ könntest du den Konstruktor deiner Klasse um einen Parameter "Context ctx" erweitern und beim Erstellen in der aufrufenden Activity "this" an der Stelle übergeben; dann änderst du den Code zu ctx.startActivity() und alles sollte gut sein ;)

Antworten
Benny
  • Forum-Beiträge: 20

21.07.2011, 10:38:54 via Website

Vielen Dank für deine Antwort,

Ich werde jetzt probieren die Klasse Action von Activity abzuleiten und so auf startActivity zuzugreifen.

Antworten
Benny
  • Forum-Beiträge: 20

21.07.2011, 15:27:13 via Website

Nochmal Vielen dank für eure beiden Antworten,

ich habe nun die Action class von Activity abgeleitet, ich kann jetzt auch startActivity() im code benutzen ohne einen Fehler. Ich habe auch probiert sie mit einem Context aufzurufen, leider war beides erfolglos. Gibt es evtl eine andere Möglichkeit einen Intent aufzurufen außer mit startActivity?

ERROR/AndroidRuntime(3819): Uncaught handler: thread main exiting due to uncaught exception
ERROR/AndroidRuntime(3819): java.lang.NullPointerException

Das sind die Fehler die ich beim ausführen in LogCat zusehen bekomme.

Antworten
Thomas L.
  • Forum-Beiträge: 58

21.07.2011, 15:38:42 via Website

irgendeine Variable die du im code benutzt, benutzt du bevor du sie ordentlich initialisierst.
Guck mal in den Rest des Tracestacks. Da steht mit Sicherheit auch drin, in welcher Zeile der Zugriff auf diese "nicht-initialisierte" Variable erfolgt.

Antworten
Benny
  • Forum-Beiträge: 20

25.07.2011, 10:59:05 via Website

Vielen Dank für eure Antworten, sowie es aussieht, hat mein Vorgänger einen Fehler im Code hinterlassen

Antworten