Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

Die richtige Übergabe von Context / this

Das Thema "Die richtige Übergabe von Context / this" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 17.08.2011, 11:06   #1 (permalink)
Erfahrener Benutzer

Modell: HTC Legend

Registriert seit: 05.04.2010
Beiträge: 205
Abgegebene Danke: 63
Erhielt 6 Danke für 6 Beiträge
Standard Die richtige Übergabe von Context / this

Hallo,

ich habe eine Activity, welche die Methode einer (Datenbank)Klasse aufrufen soll. (Die Datenbankklasse ist eine reine Klasse, also ohne extends oder ähnliches)

Der Aufruf der Methode aus der Activity sieht so aus:


private MeineDBKlasse meineDBKlasse;
...
meineDBKlasse.openDBAndWrite(this, "stueck", anzahlStueck);


Das "this" wird in der Klasse für SQLiteOpenHelper gebraucht:

public KlasseSQLiteOpenHelper dbsqlstatement;
...
public void openDBAndWrite(Context context, ...){
dbsqlstatement = new KlasseSQLiteOpenHelper (context);
...
}

Aber schon der Funktionsaufruf openDBAndWrite(...) aus der Activity führt zu einer NullPointerException. this existiert zwar (klar!), aber kann wohl nicht so ohne weiteres in eine Klasse übergeben werden.

Schreibe ich den gesamten Quelltext in die Activity hinein, klappt es.

Kennt da jemand eine Lösung?

Gruß
Duckemai
Duckemai ist offline   Mit Zitat antworten
Alt 17.08.2011, 11:28   #2 (permalink)
Android Guru

Modell: T-Mobile G1, Nexus One, Samsung Galaxy Tab 10.1, Samsung Galaxy Nexus

Registriert seit: 04.05.2009
Beiträge: 1.599
Abgegebene Danke: 128
Erhielt 210 Danke für 193 Beiträge
Standard AW: Die richtige Übergabe von Context / this

Die Übergabe von this macht kein Problem, du wirst wohl eher an anderer Stelle was falsch haben.
__________________
Follow/Add/Circle/Whatever me on Google+

Solitaire HD, ein Solitaire optimiert für Honeycomb.
the_alien ist offline   Mit Zitat antworten
Alt 18.08.2011, 01:28   #3 (permalink)
Erfahrener Benutzer

Modell: G1 DevPhone / SGS2 / SGT10.1v

Registriert seit: 20.01.2009
Beiträge: 238
Abgegebene Danke: 7
Erhielt 50 Danke für 47 Beiträge
Standard AW: Die richtige Übergabe von Context / this

Bist du sicher, dass du mit "this" den Context übergibst und nicht z.B. einen "OnClickListener" weil du die Methode innerhalb dieses Aufrufst?
Wenn ja, dann hilft z.B. MeineActivity.this als Parameter - oder du speicherst dir den Context (in der onCreate-Methode) in eine Klassenvariable und übergibst diese.
sixi ist offline   Mit Zitat antworten
Alt 18.08.2011, 19:56   #4 (permalink)
Android Guru

Modell: T-Mobile G1, Nexus One, Samsung Galaxy Tab 10.1, Samsung Galaxy Nexus

Registriert seit: 04.05.2009
Beiträge: 1.599
Abgegebene Danke: 128
Erhielt 210 Danke für 193 Beiträge
Standard AW: Die richtige Übergabe von Context / this

Wenn er keinen Context übergeben würde, dann könnte er es nicht kompilieren
__________________
Follow/Add/Circle/Whatever me on Google+

Solitaire HD, ein Solitaire optimiert für Honeycomb.
the_alien ist offline   Mit Zitat antworten
Folgender Benutzer bedankt sich bei the_alien für diesen Beitrag:
Duckemai (20.08.2011)
Alt 19.08.2011, 01:53   #5 (permalink)
Erfahrener Benutzer

Modell: G1 DevPhone / SGS2 / SGT10.1v

Registriert seit: 20.01.2009
Beiträge: 238
Abgegebene Danke: 7
Erhielt 50 Danke für 47 Beiträge
Standard AW: Die richtige Übergabe von Context / this

Das ist 'nen Argument
sixi ist offline   Mit Zitat antworten
Folgender Benutzer bedankt sich bei sixi für diesen Beitrag:
Duckemai (20.08.2011)
Alt 20.08.2011, 07:05   #6 (permalink)
Erfahrener Benutzer

Modell: HTC Legend

Registriert seit: 05.04.2010
Beiträge: 205
Abgegebene Danke: 63
Erhielt 6 Danke für 6 Beiträge
Standard AW: Die richtige Übergabe von Context / this

Habe nun festgestellt, dass ein:

private MeineDBKlasse meineDBKlasse;

also lediglich ein Objekt zu erzeugen nicht ausreicht.
Wenn ich aber eine Instanz erzeuge:

meineDBKlasse= new MeineDBKlasse ();

dann klappt es mit der this-Übergabe.

Bin mir zwar nicht sicher, ob das programmiertechnisch klug/richtig ist,
aber -mein Gott- es funzt halt.

Danke sixi, Danke the_alien
Duckemai
Duckemai ist offline   Mit Zitat antworten
Alt 20.08.2011, 10:14   #7 (permalink)
Erfahrener Benutzer

Modell: G1 DevPhone / SGS2 / SGT10.1v

Registriert seit: 20.01.2009
Beiträge: 238
Abgegebene Danke: 7
Erhielt 50 Danke für 47 Beiträge
Standard AW: Die richtige Übergabe von Context / this

Hehe, dann ist das Problem natuerlich klar :-)
Das Objekt wird erst erzeugt, wenn du es instanzierst. Sonst hast du nur dieVariable (=den Speicherplatz) deklariert. Also so MUSST du es machen
sixi ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
Firmware Update. Welche Version ist die Richtige. und was bedeuten die Buchstaben ? ronaldo Samsung Galaxy S2 (I9100) Forum 9 19.07.2011 13:54
Ist das Milestone 2 die richtige Wahl? cRex Motorola Milestone 2 Forum 26 17.01.2011 13:30
Die richtige Konfiguration finden fellfrosch Root / Hacking / Modding für T-Mobile G2 Touch 9 14.11.2010 10:28
Opera Mini: Übergabe von Links funktioniert meist nicht stereolabor Kommunikation 0 11.09.2010 21:02
Welche speicherkarte ist die richtige Falkoramone Zubehör für Motorola Milestone 4 23.03.2010 16:58




Du liest gerade: "Die richtige Übergabe von Context / this" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.