Beiträge von killphil75

    Aber dann bitte in einen anderen Thread auslagern, wenn du Thread.sleep in deinem Mainprogramm machst, legst du den UI-Thread lahm und dein Programm ist nicht mehr "responsiv" sprich nicht mehr ansprechbar und wirft dir einen ANR-Error.

    Ich schreibe zwar selber keine Spiele, beschäftige mich aber trotzdem gerade mal mit dem Thema.


    Es gibt bereits fertige Game-Engines welche dir den gesamten Frameworkkram abnehmen. Ich glaube die bekannteste ist die AndEngine.
    Von reiti aus dem Forum hier habe ich auch den Tipp bekommen das die libgdx - http://code.google.com/p/libgdx/ ganz gut sein soll.
    Die letzt genannte Engine ist auch OpenGL, vielleicht findest du da ein paar Tipps für deine Gameengine.

    Hallo


    also wenn du eine App/Spiel entwickelts, solltest du wenn möglich immer auf mehreren Geräten testen
    bzw. mehrere verschiedene AWDs im Emulator anlegen. (unterschiedliche Android Versionen ect.)


    Ich habe hier ein Samsung Galaxy (Android 2.3) und nach dem starten deines Spieles erscheint ein schwarzer Bildschirm mit Titelbar (da wird anscheinend etwas geladen)


    danach springt er in den Gamescreen, unten links dreht sich ein Viereck und alles ist schwarz/weiss, wobei der gesamte Bildschirm weiss ist und die Kanten von irgendwas anscheindend schwarz. Wenn ich mein Handy bewege bzw unten links drücke, bewegt sich auch der Spielball und es gibt Geräusche.


    Also in anderen Worten es funktioniert nicht und beenden kann man die App auch nicht :( (back taste zeigt keine Funktion)




    Auf meinem Tablet Acer Iconia (Android 4.0.1) bleibt der Bildschirm ganz schwarz und ich höre nur die Geräusche.

    Also wenn Eclipse der Meinung ist es könnte eine Exception auftreten dann zeigt er dir einen Error bzw eine Warnung an.
    Und dann bietet er Dir an das gefährdete Konstrukt per try catch zu umrahmen.


    Java
    try {
               hier das parseint
    
    
            } catch (NumberFormatException ex) {
    
    
            }

    aehm, grundsätzlich in einem Textview steht Text und Text+1 =Mist, weiterhin ist goal1 der Bezeichner deines Textviews und nicht der Inhalt.


    d.g du zaehlst den Bezeichner hoch und dann stürzt halt die App ab.


    du würdest gerne



    Java
    TextView goalHome = (TextView) findViewById(R.id.goal1);
    
    
      int heimtore = Integer.parseint( goalHome.getText());
      heimtore++;
    
    
      goalHome.setText( String.ValueOf(heimtore);





    PS: Was hier noch fehlt -> die überprüfung ob wirklich nur Zahlen in deinem Textview stehen, falls nicht, macht parseint aerger bzw muss noch in einen try catch block

    Den Namen deiner EditBox solltest du eventl in etwas aussagekräftigeres Umwandeln. Text kann alles sein, besser waere eventl eb_imei oder so.


    Hmm also Container sind immer Rechtecke und sowas wie floating gibt es meiner Meinung nach nicht.
    Keine Ahnung wie du die Daten vorliegen hast, aber vielleicht könntest du ja einen WebView verwenden. (der kann HTML und lässt sich ja per img / <p> super dann einbauen)

    Das sind lediglich Warnungen .



    1) Das eine sagt du hast ne Farbe im Theme definiert, aber ebenfalls auch im Control, die von Theme würde dann übermalt werden.


    2) Du hast eine Stringresource, welche nicht genutzt wird


    3) Dir fehlt im drawable Ordner die höchste Auflösung (xhdpi), da warnt er dich wahrscheinlich weil dein Target Honeycomb oder ICS ist

    Du hast Variante 3 vergessen: Shared Preferences - sicherlich die einfachste Lösung.


    Hier liefert die Android eine einfache Möglichkeit Daten gebunden an die App in einer SQLite Datenbank abzulegen.


    Java
    // Preferences lesen:
    SharedPreferences pref = Context.getSharedPreferences("MyApplication", MODE_PRIVATE);
    boolean showHelp = pref.getBoolean("showHelp", true);
    
    
      
    // Preferences speichern:
     SharedPreferences.Editor editor = pref.edit();
     editor.putBoolean("showHelp", true);
     editor.commit(); // Wichtig!



    Zum Thema Datenbank gibt es hier in der Tutorialsektion ein Kapitel.

    Hast du eventl schon mal in den Android Tools -> Fix Project Properties gemacht ???


    Und dann am besten noch -> Project .> Clean das sollte alle alten Abhänigkeiten raushauen und eine neue APK erzeugen.


    Der von dir beschriebene Fehler tritt zum Beispiel auf wenn du auf mehreren Eclipse Instanzen mit unterschiedlichen "Debug Keys" entwickelst, dann klemmt es ab und zu beim ReBuild.

    Uwe: Kleiner Nachtrag von mir, mit einem Augenzwinkern


    (Klugscheissermodus an)


    Das Problem eines Datums was in int oder long gespeichert ist, du benötigst immer einen Bezugspunkt und eine Wertedefinition (Millisekunden oder Sekunden, Minuten was auch immer). Wie z.B. 1.1.1970 ab diesem Zeitpunkt zaehlt dann dieser Differenzwert. In einem Context wie Java, Unix,Php ect. wurden Vereinbarungen getroffen mit welcher Basis Datehandlingfunktionen arbeiten (aber auch die können sich mal ändern).


    In einer Datenbank bist du aber selbst verantwortlich. Sprich wenn jmd mit der SpracheXYZ diesen Wert in der DB öffnet, hat er einen schönen Longwert, weiß aber nicht wo er den Gegenrechnen soll - deswegen sollte immer ein lesbares Format wie String in einer Datenbank präferiert werden.


    Alte Datenbanken welche Datumswerte als int gespeichert haben z.B. kippen nach 2035 zurück ins Jahr 1970.
    Einem String ist es vollkommen egal ob da 2167 oder 1945 steht. Wie gesagt ich spreche hier nur für den Datenbankcontext, somit bleiben diese halt lesbar.


    (Klugscheissemodus aus)



    lg der phil

    Uwe: Häh moment mal ... SQLite hat doch DATETIME als Datentyp und genau wie MySQL gibt es Tonnen von Datekommandos, womit man rechnen kann
    Ich sag mal nur NOW +9 days ect.
    Klar ist das Gerechne mit Integerwerten einfacher im Programmfluss (da kann man ja wandeln per SImpleDate), aber diese Integerwerte sind unlesbar für einen Menschen und in einer DB kann es ruhig als String stehen und dort sollte man zum Select auch gerne und oft die DATE -Kommandos nutzen.


    liest du hier:


    http://www.sqlite.org/lang_datefunc.html

    Der Fehler liegt hier


    03-08 15:56:31.608: E/AndroidRuntime(862): android.database.CursorWindowAllocationException: Cursor window allocation of 2048 kb failed. # Open Cursors=929 (# cursors opened by this proc=929)



    Du hast 929 offene Datenbank zugriffe und beim allokieren von 2MB mehr Speicher scheitert er.

    Hallo erzeuge dir doch einfach dein eigenes Objekt


    class workflow {


    int id
    Button button
    }


    hier dann jede Menge Init Kram ....




    und dann nutzt Du keine Arraylist von Button, sondern von deinem Objekt Arraylist<workflow> , da kannst du ID und Button bündeln wie du magst.




    PS: die Index outofbouds bekommst du logischer Weise, da du die 100 Objekte nicht instanziert hast. (sprich angelegt)

    Ich vermute mal du suchst so etwas in der Art ???


    http://www.youtube.com/watch?v=SZTiJmclaRc


    Normalerweise packt man die 2 Sachen in seperate Views (Highscore, Game) und flippt dann nur per Animation zwischen beiden her.


    Stichwort: Viewflipper


    http://android-pro.blogspot.co…w-flipper-in-android.html


    Die Touchgeste must du halt selber auswerten -> Stichwort OnTouch



    der kphil




    Edit: und hier gibt es sogar schon eine fertige Control dafür:


    http://code.google.com/p/deezapps-widgets/