2012-03-26 3 views
0

Ich muss die Zeit anzeigen, ticking ein Sudoku-Spiel wurde gespielt, die gespielte Zeit muss auf dem Bildschirm angezeigt werden. Dies bedeutet, dass ich in der Lage sein sollte, die Zeit vom Beginn der Sudoku-Aktivität bis zur Fertigstellung des Spiels festzuhalten. kann mir jemand helfen, wie man das in android macht.Anzeigezeit für Sudoku in Android gespielt

Antwort

0

Ich würde vorschlagen, in einen Handler und die postDelayed-Methode zu suchen. Dies ist eine großartige Option für zweite Intervalle, aber es neigt dazu, in meiner sehr kurzen Erfahrung bei 25 Millisekunden zu würgen. http://developer.android.com/reference/android/os/Handler.html#postDelayed%28java.lang.Runnable,%20long%29

Dann machen Sie eine Runnable, die eine Variable der Zeit ändert, und aktualisiert eine TextView in Ihrer App mit der neuen Zeit. Es muss auch formatiert werden. http://developer.android.com/reference/java/lang/Runnable.html

Dies sollte Ihnen die Idee und hat einige Beispiel-Code helfen zu erfassen: http://www.vogella.de/articles/AndroidPerformance/article.html

es zu implementieren, müssen Sie einen Weg, um zu bestimmen, ob der Benutzer gewonnen hat, und wenn sie es tun, müssen Sie die entfernen Callbacks vom Handler, und dann haben Sie die Gesamtzeit in Ihrer Variablen (verwenden Sie eine lange), die die Anzahl von Millisekunden hält, die sie gespielt haben.

Fühlen Sie sich frei, mit Fragen zu kommentieren und hoffentlich kann ich Ihnen helfen. Es hat eine Weile gedauert, bis ich herausgefunden habe, wie ich diese Dinge machen soll. Ich bin froh, dass ich dich in die richtige Richtung zeige, wenn du nicht weiterkommst.

+0

hey u kann den Code geben Sie mir dies zu implementieren ..... – user1290748

+0

keine .............. – AJcodez

+1

Wenn Sie Handler Intervall 25ms und drucken Sie Millisekunden auf dem Bildschirm eingestellt , es wird meistens mit einer "0" enden, was meiner Meinung nach nicht cool ist. Ich bevorzuge es wie 23ms oder 51ms einzustellen, um es aktiv zu verändern ... –

0

Ich benutze diesen Code jedes Mal, wenn ich die in einem Spiel verstrichene Zeit anzeigen muss. Zuerst haben Sie diese Textansicht, um Ihre Zeit zu zeigen, die in Ihrer XML definiert ist, nichts Besonderes. Der Code in Ihrer Spielaktivität ist:

TextView time; 

    long countUp; 

    public static Chronometer.OnChronometerTickListener chronListener = new Chronometer.OnChronometerTickListener() { 
     String msg; 

     @Override 
     public void onChronometerTick(Chronometer ch){ 
      countUp = (SystemClock.elapsedRealtime() - ch.getBase())/1000; 
      msg = showTime(countUp); 
      time.setText("Time: " + msg); 
     }   
    }; 


//a function formatting your time in human readable format, e.g. 05:06 
    public static String showTime(long countUp){ 
     String asText; 
     if((countUp % 60) < 10){ 
      if((countUp/60) < 10){ 
       asText = "0" + (countUp/60) + ":0" + (countUp % 60); 
      } else { 
       asText = (countUp/60) + ":0" + (countUp % 60); 
      } 
     } else { 
      if ((countUp/60) < 10){ 
       asText = "0" + (countUp/60) + ":" + (countUp % 60); 
      } else { 
       asText = (countUp/60) + ":" + (countUp % 60); 
      } 
     } 
     return asText; 
    } 

Es funktioniert wie ein Charme.