2016-05-23 2 views
0

Ich möchte die DateTime-Formatierung in meiner libGdx-Anwendung verwenden und ich möchte mit der Web-Version (gwt) kompatibel sein. Der Standard-Java-Weg funktioniert nicht mit der gwt-Version, da die benötigten Klassen nicht unterstützt werden.Wie verwendet man Datum-Uhrzeit-Utils in libGdx?

Ich habe bereits versucht, externe Bibliotheken wie joda-time und treeten-bp zu verwenden. Letzteres hat Abhängigkeiten zu Java-Klassen nicht in gwt unterstützt, und joda-time hat Abhängigkeiten, die ich nicht lösen konnte ...

Ich habe gesehen, dass gwt Zeit utils hat, die ich brauche, aber ich konnte nicht herausfinden wie man sie benutzt.

Oder sogar, wie man Logik hinzufügt, um normale Java-Utils in Android und auf dem Desktop zu verwenden, und gwt-Klassen in html5/gwt zu verwenden. Aber ich kann einfach nicht herausfinden, wie man die gwt-Klassen verwendet, dh. DateTimeFormat in libGdx. Der Versuch, es nur zu importieren, ergibt Exception in thread "main" java.lang.NoClassDefFoundError: com/google/gwt/core/client/GWTBridge

Vielen Dank im Voraus für jede Hilfe!

Antwort

1

Sie müssen einen ActionResolver verwenden und für jedes Modul die DateTime-Methode implementieren, die Sie verwenden möchten (siehe https://github.com/libgdx/libgdx/wiki/Interfacing-with-platform-specific-code für das Schreiben plattformspezifischen Codes).

Für Android, iOS und Desktop-Implementierung können Sie SimpleDateFormat in Ihrem ActionResolver verwenden.

Für das HTML-Modul können Sie die Bibliothek

com.google.gwt.i18n.client.DateTimeFormat 

und implementieren verwenden, wie so viel

public class HtmlLauncher extends GwtApplication implements com.yourpackage.util.ActionResolver{ 

     @Override 
     public GwtApplicationConfiguration getConfig() { 
       return new GwtApplicationConfiguration(360, 640); 
     } 

     @Override 
     public ApplicationListener getApplicationListener() { 
       return new MyGame(this); 
     } 

     @Override 
     public String convertDate(String format, Date date) { 
      DefaultDateTimeFormatInfo info = new DefaultDateTimeFormatInfo(); 
      DateTimeFormat dateFormat = new DateTimeFormat(format, info) {}; 

      return dateFormat.format(date); 
     } 

    } 
+0

Dank folgen! Ich weiß, dass ich über diese Methode irgendwo gelesen habe. Es hat einfach nicht in meinem Kopf geklickt, dass das genau das ist, was ich brauchte. –

+0

Gefunden: https://github.com/libgdx/libgdx/wiki/Interfacing-with-platform-specific-code –

Verwandte Themen