Es scheint, dass ich immer noch ein paar Konzepte der objektorientierten Programmierweise nicht verstanden habe(n) (will)..
Im Prinzip möchte ich mittels Google Android API den Location Manager aufrufen.
Context context;
TextView tv = new TextView("this");
tv.setText("1");
LocationManager lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
tv.setText(2");
der Emulator gibt am Display jedoch nur "1" aus, auf "2" kommt er nicht. Nun denke ich mir, dass ich vermutlich einfach nur nicht verstanden habe, den LocationManager bzw die Klasse Context richtig zu verwenden/verbinden.
Beim LocationManager (http://code.google.com/android/refere…ionManager.html)
steht:
"You do not instantiate this class directly; instead, retrieve it through Context.getSystemService(Context.LOCATION_SERVICE)."
Deshalb mach ich eben wie oben:
Context context
LocationManager lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
[im Übrigen: warum schreiben Sie als Beispiel "Context.getSystemService(Context.LOCATION_SERVICE)"
an, wenn man es so überhaupt nicht verwenden kann, sondern zuerst Context context; machen muss? also sie instantiieren muss? siehe:
context.getSystemService(Context.LOCATION_SERVICE)]
So, da sich aber nix tut ("2" nicht ausgegeben wird), denke ich, liegt es vielleicht daran (an der Klasse Context):
Context:
Interface to global information about an application environment. This is an abstract class whose implementation is provided by ApplicationContext. It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activities, broadcasting and receiving intents, etc.
Das heisst, einfach "Context context;" reicht nicht. Sondern ich muss sie implementieren (richtig?)
Wenn ich jetzt jedoch auf die Klasse ApplicationContext gehe, und irgendeine Methode suche, die mir ein Context zurückgibt, finde ich die
(Context) createPackageContext(String packageName, int flags)
(link: http://code.google.com/android/refere…ionContext.html)
Um jedoch jetzt eine ApplicationContext zu erzeugen, steht im Constructor;
ApplicationContext(ApplicationContext context)
Create a new ApplicationContext from an existing one
und da stehe ich an..
Wo ist mein Denkfehler?
Problem vorerst gelöst:
ApplicationContext appContext = new ApplicationContext(airMidlet);
context = appContext.createPackageContext(airMidlet.getPackageName(), Context.CONTEXT_INCLUDE_CODE);
aber ganz klar ist es mir nicht.. war mehr experiement als veständnis.
context Klasse:
http://code.google.com/android/refere…nt/Context.html