Jetzt registrieren » Login
« Login

Passwort vergessen?

Du bist hier: Android Forum » Android Developer Forum » Android Entwickler Forum » Klassenaufruf mit this, in externer Klasse schlägt fehl
Gehe zu: Neue Beiträge | Eigene Threads | Beobachtete Threads

Klassenaufruf mit this, in externer Klasse schlägt fehl

Um aktiv im Android Forum teilnehmen zu können, musst Du Dich bei AndroidPIT registriert haben.

User-Foto
Martin Grulichde

Rang: Schülersprecher

Beiträge: 55

Eintrittsdatum: 14.12.2009

Klassenaufruf mit this, in externer Klasse schlägt fehl
verfasst am 30.03.2011 16:59:08
Hi Leute,

ich weiß das ist Sicher eine blöde Frage, weil es vorraussichtlich auf mein fehlendes Wissen mit Java zusammenhängt.
Hoffe jedoch das Ihr mit helfen könnt.

Ich habe also eine eigene Klasse, die eine main Funktion enthält (siehe Code).

Nun meldet eclipse "Cannot Use this in static context".
Was die Meldung heißt ist mir klar, jedoch weiß ich nicht wie ich das umgehen, bzw lösen kann und habe auf die schnelle auch nichts gefunden was mein Problem lösen könnte.

Danke & Gruß Martin

1public static void main(String[] args) {
2 mHelper = new ReportsDatabase(this);
3 }
Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
Markus Gude
Twitter Facebook

Rang: Android Gottheit

Beiträge: 2.595

Eintrittsdatum: 05.06.2009

RE: Klassenaufruf mit this, in externer Klasse schlägt fehl
verfasst am 30.03.2011 17:02:51
naja steht ja da

du kannst nicht this verwenden in static context

deine main ist eine static methode, also kein this.


such mal im google nach statischen methoden im java

-----
swordiApps Blog - Website

Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
Tobias Lettlde

Rang: Android Junior

Beiträge: 7

Eintrittsdatum: 17.03.2011

RE: Klassenaufruf mit this, in externer Klasse schlägt fehl
verfasst am 30.03.2011 17:53:25
Martin,

mHelper = new ReportsDatabase(klassenname.this);


Gruß

Tobias Lettl
Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
Rafael K.de

Rang: Android GoldSenior

Beiträge: 1.394

Eintrittsdatum: 16.01.2011

RE: Klassenaufruf mit this, in externer Klasse schlägt fehl
verfasst am 30.03.2011 17:59:45
Tobias Lettl
Martin,

mHelper = new ReportsDatabase(klassenname.this);


Gruß

Tobias Lettl

Das funktioniert für innere Klassen, NICHT in static Methoden.

-----
Meine Apps: Verkaufswert Rechner für eBay -- 1-Klick Kleinanzeigen (eBay,dhd24,Quoka) -- Madvertise Umsätze -- AndroidPIT Umsätze -- Directupload.net / Abload.de

Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
Martin Grulichde

Rang: Schülersprecher

Beiträge: 55

Eintrittsdatum: 14.12.2009

RE: Klassenaufruf mit this, in externer Klasse schlägt fehl
verfasst am 30.03.2011 18:31:19 — geändert am 30.03.2011 19:57:20
Hi Leute,

erst einmal danke für das Feedback. Inzwischen habe ich mal nach den statischen Methoden gegoogelt.
Wenn ich das also richtig verstehe, ist eine statische Methode unabhängig von dem Objekt.

Das ist aber warscheinlich nicht das was ich benötige, denn dieser Aufruf, soll ja den anderen Funktionen in der Klasse das Objekt mHelper zur Verfügung stellen, ist also daher schon Objektabhängig.
Mein erster Gedanke war bei der static main Methode, das diese halt beim Erstellen eines Objektes ausgeführt wird und daher direkt zur Verfügung stehen.

Wie kann ich also bewerkstelligen das ich eine Methode habe die beim Erstellen des Objektes das neue Objekt mHelper initialisiert um mit den anderen Funktionen darauf zugreifen zu können ?

[UPDATE]
Vielleicht hole ich der Einfachheit halber ein wenig weiter aus.
Also im grunde möchte ich lediglich die Funktionen, die remote via JSON Daten abholen und in die sqlite Datenbank schreiben sollen, auslagern, damit ich später darauf via Service drauf zugreifen kann und die Daten auch im Hintergrund holen kann.
Im Moment sind die beiden Funktionen die das machen in der ListActiviy untergrbracht, das funktioniert bisher gut, soll dann aber auch automatisch via Service im Hintergrund geschehen. Vielleicht habt Ihr da ja noch eine bessere Idee, als mein Ansatz. Vielleicht ist der ja auch völlig falsch.

Danke & Gruß Martin
Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
Gelöschter Account
RE: Klassenaufruf mit this, in externer Klasse schlägt fehl
verfasst am 30.03.2011 22:45:23 — geändert am 30.03.2011 22:47:19
Da schmeiß ich Dir mal zwei grundsätzliche Begriffe der objektorientierten Programmierung an den Kopf:

* Abstraktion
* Information-Hiding

Beide haben unmittelbar miteinander zutun und sollten Dir helfen, Deinen Code so zu strukturieren, dass Du Dein Ziel erreichst.

Vielleicht noch als Stütze:
Deine Anwendung wird verschiedene Dinge tun wollen. Sie wird in die Datenbank schreiben wollen, sie wird per JSON mit einem Server reden wollen. Sie will die Daten irgendwie anzeigen. Alles sind unterschiedliche Concerns die auch in eigene Klassen (oder sogar Gruppen von Klassen) gehören. Du kannst Dir die Struktur auch als Schichten-Modell vorstellen. Grob skizziert: [Server: Datenbank->Daten-Modell->Service]->[JSON-Client->(SQL-Datenbank <-> Anzeigelogik)]. Das ist in etwa die übliche Logik. Zur Lektüre schau Dir mal noch Model-View-Controller (MVC) als Design-Pattern an (->Google).

Ich hoffe, das überfordert Dich jetzt nicht, da Du ja scheinbar eher am Anfang der Lernkurve steckst. Aber da Du Dir ja ausgiebig Gedanken machst, finde ich das nicht falsch.

Grundsätzlich empfehle ich aber noch ein gutes Java-Buch und schau Dir an, wenn Eclipse etwas gelb oder rot makiert. Das hat (fast) immer einen Grund ;)

VG Carsten

-----
Seid nett zueinander: AndroidPIT-Regeln ;)

Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
Patrick S.de

Rang: Android Junior

Beiträge: 8

Eintrittsdatum: 15.03.2011

RE: Klassenaufruf mit this, in externer Klasse schlägt fehl
verfasst am 31.03.2011 10:12:26
Martin G.

Wie kann ich also bewerkstelligen das ich eine Methode habe die beim Erstellen des Objektes das neue Objekt mHelper initialisiert um mit den anderen Funktionen darauf zugreifen zu können ?

einfach im Constructor den mHelper initialisieren.

1public Klassenname(){
2 mHelper = new ReportsDatabase(this);
3}
Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
Du bist hier: Android Forum » Android Developer Forum » Android Entwickler Forum » Klassenaufruf mit this, in externer Klasse schlägt fehl
Gehe zu: Neue Beiträge | Eigene Threads | Beobachtete Threads

AndroidPIT unterstützen

Gefällt Dir AndroidPIT? Wir freuen uns, wenn Du uns unterstützt. Wie das geht? Klicke einfach auf die unten stehenden Links.

Weiterempfehlen

Gefällt Dir AndroidPIT? Dann empfiehl uns bitte weiter!

Fragen / Hilfe

Du hast Fragen zu AndroidPIT oder willst noch mehr erfahren? Diese Links helfen Dir vielleicht weiter...

  Du liest gerade: Klassenaufruf mit this, in externer Klasse schlägt fehl - Android Forum - AndroidPIT. Alle Zeitangaben in UTC+02:00. Es ist jetzt 16:05 Uhr.