Beiträge von killphil75
-
-
Kein Problem,
am besten du lässt unten in Eclipse immer das LogCat mit offen, da siehst du zum Beispiel wenn Zugriffe auf Funktionen ohne Berechtigungen erfolgen - Eclipse wirft dann Exceptions in oranger Farbe, damit findet man solche Fehler immer relativ schnell.
-
Dein Canvas ist gar nicht initalisiert (am besten in der onCreate - Methode),
worauf soll der View also wissen wo er malen soll ?
am besten auch onDraw überschreiben, da fällt Dir dein Fehler sofort auf.
-
Also Email ist eventl nicht wirklich ratsam weil nicht jeder hat einen Email Client auf dem Androidgerät (nicht lachen, ist mir schon selber untergekommen)
und obendrein als Klartextinfo oder XML ist ja auch nicht so schön.Da du eine Umfrage machst, soll die ja sicherlich hinterher auch ausgewertet werden. Das schreit also förmlich nach einer Datenbank.
Ich würde die Daten also alle zusammensammeln und per HTTP Request an ein PHP Skript schicken, welches mir meine externe MySQL Datenbank befüllt. Damit hast du die Daten im Netz und kannst weiter damit arbeiten.
HTTP Request (POST / GET) steht hier schon zig mal im Forum, ist ganz einfach einzubinden.
oder auch hier
-
Was für eine Fehlermeldung wirft er den ??? (Ausgabe LogCat/Console)
Javapublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Context context = getApplicationContext(); Vibrator v = (Vibrator) getSystemService(context.VIBRATOR_SERVICE); v.vibrate(3000); }
Also das funktioniert hier ohne Probleme, dann liegt dein Fehler bestimmt noch wo anders.
-
Hast du im Manifest auch die Erlaubnis erteilt ???
<uses-permission android:name="android.permission.VIBRATE"/>
und natürlich brauchst du auch eine Instanz auf das Objekt - du deklarierst nur eine Variable
Vibrator vib_ein = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
-
Du hast Dir ja deine Datenbankfunktionen in einer Klasse gekapselt, dort kannst du Dir auch weitere Funktionen reinschreiben und nutzen.
Solch ein Konstrukt wird schnell unübersichtlich und wenn du DIch mal verschreibst baust du dir einen Fehler ein, welchen du nur schwer findest.
Ich würd mir in der DB Klasse gleich eine Funktion einbauen
compare_units(int idx1, int idx2)
{
Hier beide Datensätze holen
Vergleichen -> Kampf (am besten Aufruf -> andere Klasse)
Rückgabe des Gewinners, -> Bereinigung Verlierer
}Die Kampfsimulation basiert ja dann aucf einfachen Vergleichen, eventl noch Zufall ala Moral,Glück das sollte man wieder am besten in eine Klasse kapseln.
-
Was wirft er Dir den für eine Fehlermeldung ???
PS: Noch ein Hinweis: ganz wichtig du musst in deinem Manifest die Permissions setzen das du den Telefonstatus überhaupt auslesen darfst.
-
-
Zitat
Stelle ich mir das ganze richtig, zu kompliziert/zu einfach vor? Was
wäre die Herangehensweise in einem Spiel ähnlich zu Super Mario?Es wäre bereits eine große Hilfe, wenn ihr mir sagen könnten wie man
sowas überhaupt nennt. Mit Stichworten wie "Level programming" oder
"Level development" konnte ich bei Google nichts finden.Also kurz zu deinem Spaceinvaders-Klon, die Angriffswellen von Feinden machen ja meist eine Bewegung, diese Bewegung legst du als Koordinaten in einer Tabelle ab. (oder auch als Funktion, schöne sanfte Bewegungen erreicht man zB mit Sinusspielerreien)
Ein Spiellevel könnte jetzt ja so aussehen -> Start -> Countdown bis zur ersten Welle -> Countdown zu nächsten Welle ect
Hier könntest du dir zb. eine Arraylistnehmen und die mit deiner "eigenen" Gamesprache füllen. (zb. ein Objekt was den Countdown enthält, Die Art der Feinde und die Bewegung der Feinde, Punkte der Welle)
Wenn jetzt der Level startet - läuft halt ein Counter mit und du arbeitest nach und nach deine Arrayliste ab.
-----------------------
Mario: Die Spielfelder in so einem Spiel kann man meist als 2dimensionales Array (x,y) darstellen. Die Spielewelten bestehen meist aus Blöcken (feste Höhe Breite) und werden aus Sprites (einzelne Blöcke, Objekt) aufgebaut. Damit kann man aus wenigen Teilen riesige Spielwelten erzeugen
-> das nennt man auch Tile-Engine (Google-Tipp)
Tja und wenn dein x,y größer als der Bildschirm ist, kannst du auch super scrollen und stellst immer nur den Teil dar, der wirklich sichtbar ist.
-
Hast du die Activity auch im Manifest eingetragen ??
-
Na das ist ja ein großer Mist, ist halt doch nur ne "kleine" Java-VM.
Aber irgendwie hast du ja doch eine Lösung gefunden Respekt ! -
-
Genau , du kannst ein Linearlayout zusammenbauen (zb mit 5 Textfeldern) und dieses wieder in eine Tabellenspalte packen.
Ich habe nur gefragt um für mich selbst ein besseres Bild zu haben, was du überhaupt vorhast.
Die Layoutparameter kannst du aber auch zur Laufzeit setzen. siehe Code.Javaif(tabelle != null && tabelle.size() > 0){ TableLayout tl = (TableLayout) findViewById(R.id.tableLayout1); tl.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT)); tl.setColumnStretchable(1, true); tl.setColumnShrinkable(1, true); // Header zeichnen - 1.Zeile TableRow trh = new TableRow(context); trh.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT)); trh.setBackgroundColor(Color.rgb(230,230,230));
-
Hmm denk denk
also deine Textfelder stecken in 5 Spalten oder in 1 Spalte ???
Normalerweise kannst du ja bei Textfelder/Button auch ein Fill_Parent vergeben dann hast du in deinem Fall den selben Effekt wie layout_weight=1.
Die würden sich dann an die Breite deiner Tabellenspalten anpassen.
Per Layoutparameter kannst du auch der Tabelle mit teilen, welche Spalten shrinkable seien sollen. -
Warum setzt du den Inhalt deiner ersten Tabellenzeile auf weight=1 ???
Der Inhalt einer Tabellenzeile sollte doch immer "wrap_content" sein, damit du den ganzen Inhalt siehst.
Falls die Tabelle länger/größer wird solltest du das gesamte Tabellenkonstrukt noch in einen ScrollView packen. -
Zitat
Es gibt zwar ein WebView der sowas ähnliches macht, aber immer eine URL als Quelle benötigt.....
Diese Aussage ist nicht richtig, du kannst gut und gerne lokale Dateien (SD Card, Assets) in deinen WebView laden und der unterstützt super
die Zoomgestehttp://developer.android.com/r…droid/webkit/WebView.html
loadDataWithBaseURL ist dein Freund
oder auch wenn es nur ein STring sein soll
String summary ="<html><body>You scored <b>192</b> points.</body></html>";
webview.loadData(summary,"text/html",null); -
So fern ich weiss muss das Objekt ja auf jeden Fall das Interface Serializable haben, ansonsten wird das nix.
Eventl. kleines Beispiel
-
Hier wären schon einmal die Grundlagen
https://www.dropbox.com/developers/reference/api
Das aktuelle SDK
https://www.dropbox.com/static…opbox-android-sdk-1.3.zip
altes Beispiel, keine Ahnung ob das noch geht - aber das Prinzip sollte klar sein
https://github.com/mlamina/DropboxSDK-for-Android
https://www.dropbox.com/static…ox-android-sdk-0.1.tar.gz
und noch mehr Lesestoff nach 5min Google
http://hackingmobile.wordpress…/dropbox-sdk-for-android/
-
Hier gibt es ein ähnliches Problem in englisch
Background -> komplettes Keyboard (Zum Thema selektor gibt es hier im Forum schon mal einen Beitrag)
http://stackoverflow.com/quest…ard-background-in-android
Background -> Key
http://stackoverflow.com/quest…-keyboard-keys-background
Eventl hilft dir das
PS: Ich denke dein Problem ist sehr speziell, daher gibt es hier wahrscheinlich nicht so viele Antworten aus dem Forum