Android Acceleometer in SurfaceVIew

Der

Mitglied
Hallo,
ich habe für Android eine Klasse programmiert die von einer SurfaceView erbt. Diese wird als View in einer Activity gesetzt ("
Code:
setContentView(new ...(this));
"). In der Klasse die von der SurfaceView erbt möchte das Acceleometer nutzen. Normalerweise sollte man es doch in der
Code:
onResume()
Methode registrieren und in der
Code:
onPause()
abmelden? Allerdings gibt es diese Methoden in meiner Klasse nicht, da ich von der SorfaceView und nicht von der Activity erbe....

Ich habe ein wenig erfahrung mit Java, aber kaum mit android.

Danke im Vorraus!
 

dzim

Top Contributor
Da ich vom konkreten Problem keine Ahnung hab, aber von Android allg. ein wenig, würde ich sagen, dass du das alles in der Activity, die deinen SurfaceView hosted machen musst. Kannst ja deinen View auch ein paar public-Methoden bereitstellen lassen, die du dann in den entsprechenden Methoden der Activity ansprichst.
Das wäre so mein ganz pragmatischer Gedanke...
 

Der

Mitglied
Ja hab ich auch schon dran gedacht danke :D

mich würde es einfach interessieren wie man das in eine Klasse macht!
 
Zuletzt bearbeitet:

Der

Mitglied
Is jetzt zwar ein anderes Thema aber wie kann ich die Orientation des Screens auf Landscape setzen wenn ich als ContentView nur meine SurfaceView setze?

PS: Wie kann man sich beganken? :D
 

dzim

Top Contributor
Danke: Den Dankeknopf unter dem Post nutzen, den du hilfreich fandest.

Ich denke mal das du es im Regelfall in der Activity setzt, die du verwendest - wenn in der selben Activity der Schirm sich dreht, würde mich das als Nutzer verwirren. Also im Android-Manifest, wo du die *neue* Activity anmelden musst (dort gibt es, glaube ich, das Attribut "orientation", das du auf "landscape" oder "portrait" setzen kannst). Im Code kannst du es wohl via [c]setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);[/c] setzen.
 

Der

Mitglied
Bei der onCreate-Methode steht zwar nicht static. Aber gibt es ein Ojekt (ohne dass ich eins erzeugt habe) der Klasse die das Programm startet das ich in der onCreate-Methode an eine andere Klasse übergeben kann?

Ich find einfach keinen danke-Button. Da is zitieren und so nen paar mal suchen bei .... sonst seh ich nichts.
 
Zuletzt bearbeitet:

dzim

Top Contributor
Danke: links vom Zitieren-Knopf. Geht natürlich nur bei Posts, die nicht von dir sind... ;-)

Deinen onCreate-Teil verstehe ich nicht - kannst du deine Gedanken noch einmal ordnen und in einem Post zusammenfassen???

Aber noch mal der Hinweis: Setz doch im Manifest die Orientation deiner Activity, die den SurfaceView enthält! Oder verwendest du Fragmente - in dem Fall würde zwar das Bsp. mit dem Code vermutlich gehen, ich würde es aber nur dann verwenden, wenn keine anderen Fragmente existieren, bei denen der Landscape-Modus vielleicht sinnbefreit wäre...
 

Der

Mitglied
Ich rufe eine Klasse über ein Intent auf, in der onCreate() methode möchte ich schreiben
Code:
new Klasse(this, this)
bei einem Konstructeur nach dem schema:
Java:
public Klasse(Context context, AndereKlasse ak) {}
funktioniert das? kann ich dann nicht-static methoden aus der AndereKlasse (über mein objekt ak) aufrufen?

zum Thema danke:
wollte jetzt einen Screenshot einfügen... aber des geht nicht? Hab ich jetzt einen Anhang hochgeladen?
 

Anhänge

  • Screenshot_2014-1-27 15.19.19.png
    Screenshot_2014-1-27 15.19.19.png
    48,9 KB · Aufrufe: 32
Zuletzt bearbeitet:

dzim

Top Contributor
Zum Thema "Danke": Schreib das mal den Admins, das ist wirklich strange!

Was deine Klassenproblematik anbelangt würde ich sagen, dass das gehen sollte! Ich meine der Context ist ja eh deine Activity ("this" ist da also in der onCreate absolut plausibel), das zweite "this" ist mir jetzt nicht mehr ganz klar, aber da kenn' ich dein konkretes Problem auch zu wenig - deine Codeschnipsel reichen da als Erklärung nicht mehr ganz. Aber wie gesagt: Es tönt erst mal plausibel.

Was ich noch nicht verstehe: Was hat das mit dem Landscape-Modus zu tun?
 

Der

Mitglied
Mit dem 2. this möchte ich ein/das Objekt der Klasse AndereKlasse übergeben (name des objekts ak). Also ich möchte dann mit hilfe dieses Objekts (von meiner Klasse Klasse, der ich die Instanz des Objekts der KLasse AndereKlasse im Konstruktor übergebe?) methoden in meiner Klasse AndereKlasse aufrufen (wie man es halt mit Objekten so macht^^)

Also ich frage mich ob ich eine Instanz von einem Onjekt übergeben kann. (Hintergrund ist, dass ich die onCreate() methode so sehe wie die main-Methode in java, die ist aber static und damit könnte sie keine Instanz eines Objektes übergeben)
 

dzim

Top Contributor
Du kannst im Intent eine Klasse mitschicken (wenn sie, glaube ich, Parcable implementiert). Ansonsten kannst du über die Intent-Extras halt alles auch in Form einer Map (Key-Value-Pairs) mitschicken und eine neue Instanz einer Klasse XYZ dann in onResume (glaub ich) erstellen.
Meiner Meinung nach macht "new Klasse(this, this)" keinen Sinn, solange "this" nicht mehr als ein Interface implementiert (bzw. eine Abstrakte Klasse und mind. ein weiteres Interface).
 

dzim

Top Contributor
Ich frage mich, ob mein hier letzter Post was gebracht hat...

Wenn ja: Thread schließen.
Wenn nein: Frage weiter konkretisieren.

Danke...
 

Ähnliche Java Themen

Neue Themen


Oben