| |||||||
Das Thema "Zugriff einer static Klasse auf Intent" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer Benutzer Registriert seit: 24.10.2011
Beiträge: 12
Abgegebene Danke: 3
Erhielt 0 Danke für 0 Beiträge
| Ich versuche mich gerade an einem Spiel und bin am verzweifeln: Ich habe eine Klasse spiel erstellt, welche alle Einstellungen des Spiels enthält. Code: public Um darauf zugreifen zu können habe ich in der Activity wo man auf einen Button "Neues Spiel" klickt folgendes gemacht´: Code:
Somit kann ich von jeder Activity aus über Start.s.gesundheit den Gesundheitswert abfragen. Mein Problem ist nun: Wenn der Spieler stirbt (Gesundheit=0) soll ein Verloren-Bildschirm angezeigt werden. Ich nutze hierzu die Funktion lebenminus der Spiel-Klasse. Das Programm soll einen Gesundheitspunkt abziehen und wenn Gesundheit=0=tot die Verloren-Activity anzeigen. Dies funktioniert nicht und ich komme nicht dahinter warum das so ist. Sobald das Intent erstellt wird stürzt das Spiel ab. Gruß, Alex Geändert von AlexL1980 (27.10.2011 um 06:08 Uhr) |
| | |
| | #2 (permalink) |
| Android-Hilfe.de Mitglied |
Hallo Alex, Logcat wäre wie immer hilfreich ![]() Und zweitens.. hä? ^^ Deine Klasse Spiel ist eine Activity. Activitys werden NICHT mit Kontruktoren instanziert!
Frag ruhig, wenn du nicht weiter kommst.. aber erst ma Logcat.regards |
| | |
| Folgender Benutzer bedankt sich bei Neeldarax für diesen Beitrag: | AlexL1980 (29.10.2011) |
| | #3 (permalink) |
| Android Guru Modell: Samsung Galaxy S (I9000) Registriert seit: 21.12.2009
Beiträge: 2.572
Abgegebene Danke: 76
Erhielt 506 Danke für 295 Beiträge
|
der Konstruktor sollte vor onCreate() aufgerufen werden
__________________ Meine Apps: GTalk Widget free Filehosting mit direkt download links & ohne werbung |
| | |
| | #4 (permalink) | ||
| Neuer Benutzer Registriert seit: 24.10.2011
Beiträge: 12
Abgegebene Danke: 3
Erhielt 0 Danke für 0 Beiträge
|
@Fr4gg0r: Das Spiel sollte aber immer neu initialisiert werden, wenn auf Neues Spiel geklickt wird. Wenn ich das vor oncreate() mach, dann werden die Werte nicht zurückgesetzt. @Neeldarax: Ich kann mir gut vorstellen, wie verwunderlich mein Code für einen Nicht-Laien ist ![]() 1. Was ist LogCat? Ich habe im Debugger ein Fenster was so heißt... da kommen immer diese Meldungen (onSignalStrenghtChange, usw.). Meinst Du das? Zitat:
.Zitat:
Danke! Gruß, Alex | ||
| | |
| | #5 (permalink) |
| Fortgeschrittenes Mitglied Modell: HTC Sensation Registriert seit: 31.08.2011
Beiträge: 390
Abgegebene Danke: 25
Erhielt 59 Danke für 57 Beiträge
|
Hmm, ich hab da grad ein Verständnisproblem mit static und finish. Du rufst in deiner Activity Spiel ja nach dem Erzeugen des Intents finish() auf. Damit wird doch die Klasse eigentlich zerstört. Kann man dann noch auf Start.s zugreifen? Bin da grad etwas verwirrt ;-) Prinzipiell würde ich mir für meine statischen Werte eine eigene Klasse machen (GlobalStats oder so), und diese natürlich nicht von Activity oder sonst was ableiten. Ansonsten mal den Aufbau und die Ablauflogik überdenken, vielleicht stimmts da ja nicht richtig :-) |
| | |
| | #6 (permalink) |
| Android-Hilfe.de Mitglied Modell: Acer Iconia A100 Registriert seit: 28.10.2011
Beiträge: 127
Abgegebene Danke: 15
Erhielt 13 Danke für 11 Beiträge
|
In Android gibt es eine Klasse PreferenceActivity, mittels derer Du Schlüssel/Wert Paare speichern kannst und auf die von überall in der App zugreifen kannst. Diese Klasse stellt Dir sogar ein GUI für das Ändern dieser Key/Value Paare durch den Benutzer zur Verfügung. Im übrigen wird der Lebenszyklus einer Activity vom ActivityManager gesteuert. Du als Entwickler kannst nur durch die Events wie onCreate(), onPause(), onResume(), etc. auf den Ablauf der App Einfluss nehmen, im Gegensatz zu Java. Schau Dir einfach mal den Activity Lebenszyklus an und die 4 grundsätzlichen Komponenten Activity, Service, Intent, Broadcast Receiver an (beachte: Ein Service hat einen anderen Lebenszyklus als eine Activity) Android wird zwar in Java programmiert, das Programmierparadigma ist aber grundsätzlich verschieden. |
| | |
| Folgender Benutzer bedankt sich bei mradlmaier für diesen Beitrag: | AlexL1980 (29.10.2011) |
| | #7 (permalink) |
| Neuer Benutzer Registriert seit: 24.10.2011
Beiträge: 12
Abgegebene Danke: 3
Erhielt 0 Danke für 0 Beiträge
|
So... ich habe nun die Spielklasse mit implements serializable abgeleitet (ohne extends Activity). Bei Klick auf neues Spiel instanziere ich die Klasse ohne Static. Mit Putextra werden die Klasseneinstellungen an die nächste Activity durchgereicht... und siehe da - alles funktioniert. Vielen Dank an alle die geholfen haben! Gruß, Alex Gesendet mit der Android-Hilfe.de-App |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Zugriff von Ticker/Timer-Klasse auf TextView-Objekt | stdevel | Android App Entwicklung | 3 | 11.08.2011 09:44 |
| Zugriff auf eigen View-Klasse funktioniert nicht | flash2910 | Android App Entwicklung | 2 | 03.06.2011 01:28 |
| Werte aus einer Klasse einer anderen Klasse übergeben und TextView verändern | funk | Android App Entwicklung | 1 | 07.12.2010 11:13 |
| Intent: Parameter an 2te Klasse übergeben | necromancer | Android App Entwicklung | 2 | 09.09.2010 22:35 |
| Intent zugriff auf Stack | derdiedas | Android App Entwicklung | 0 | 01.04.2010 10:13 |