Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  4 667
Hei!
Jeg prøver å lage et litt primitivt spill, for å komme i gang og lære meg hvordan man programmerer spill og programmer til android.

Jeg har fått spillet til å fungere, men har et problem når jeg prøver å sette inn en "bank" i spillet..

Jeg har fått SharedPreferences(SP) til å fungere i programmet, men det vil ikke fungere i spillet. (Spillet har flere spill inni, lotto og vanlig spill)

I lotto-delen av spillet fungerer SP fint.

Det er når jeg prøver å sette SP inn i den andre delen det ikke virker. Jeg tror det er fordi jeg har bygd det opp av SurfaceView, men er usikker.

Er det noen som vet hvordan jeg skal sette inn SP så det fungerer med spillet?

public class LottoActivity extends Activity { //fungerer
public class GameView extends SurfaceView { //funker ikke

På forhånd, takk for all hjelp!
"Fungerer ikke" er en litt upresis formulering. Kan du si hva som skjer.., hvordan forventet adferd skiller seg fra faktisk adferd?

Filosofisk sidenote: Det er ikke programmer som ikke fungerer. Programmer fungerer alltid 100% slik de er laget. Feilene finner du hos oss som lager programmene.
Hehe, likte den filosofiske sidenoten

men tilbake til tema, jeg vet ikke hvor jeg skal legge inn "SharedPreferences bank = getSharedPreferences("bank", 0);" i klassen "public class GameView extends SurfaceView" slik at den fungerer. Til nå har alt jeg prøvd vært håpløst!
Dine antagelser er korrekte, det vil ikke fungere å bruke getSharedPreferences() i klassen SurfaceView. Om vi ser litt på javadocen til SurfaceView ser vi nemlig at denne klassen ikke har en slik metode. Javadocen til Android er en fin plass å lete når man lurer på ting som dette.

getSharedPreferences() er en metode man kan kjøre på klasser som arver fra Context. Activity er et eksempel på en slik klasse. Om du igjen ser på SurfaceView i javadocen ser du at denne klassen arver fra View, og derfor har en funksjon som heter getContext(). Det du derfor kan gjøre er å skrive getContext().getSharedPreferences("bank", 0), så vil du få returnert et objekt av typen SharedPreferences

Et lite tips belt på slutten: http://developer.android.com/reference/packages.html inneholder en så vidt jeg vet fullstendig oversikt over klasser med tilhørende funksjoner man finner i i Android SDK, og er en fin plass å lese for å sette seg inn i hvilken funksjonalitet de forskjellige klassene tilbyr
Sist endret av Glykose; 12. november 2011 kl. 02:32.
hva med å legge til en funksjon i din "GameView" som bare heter noe som setBank(SharedPreferences)?
Hva denne metoden gjør bør du skjønne.

Ikke skyt meg hvis dette er helt galt.