2012-11-26 48 views
5

我的目標:我想在android上使用我的libgdx遊戲中的片段。如何讓LibGDX的AndroidApplication類支持Android Fragments?

這是問題所在。對於主持libgdx遊戲的活動,它必須擴展AndroidApplication類。

public class MyGameActivity extends AndroidApplication {} 

而AndroidApplication也Activity類

public class AndroidApplication extends Activity ... {} 

我想在活動中使用片段的延伸,而這正是問題就來了。我也需要做出MyGameActivity延長FragmentActivity像這樣支持片段

public class MyGameActivity extends FragmentActivity {} 

但是,如果不延長AndroidApplication遊戲將無法運行。 我該如何解決這個問題?

如果只有我能做到這一點...

public class MyGameActivity extends AndroidApplication, FragmentActivity {} 

我使用的是支持庫,使應用程序向後兼容。

回答

1

你不能在Java中做多重繼承,即使你可以如何工作?

你可以做的就是複製這個代碼在你從FragmentActivity繼承類https://github.com/libgdx/libgdx/blob/master/backends/gdx-backend-android/src/com/badlogic/gdx/backends/android/AndroidApplication.java

公共類MyAndroidApplication擴展FragmentActivity實現應用

而且在你實例AndroidApplication必須實例MyAndroidApplication的地方。

+0

我想這將不得不現在做。雖然還有其他需要AndroidApplication類的類,例如AndroidInput和AndroidAudio類,但MyAndroidApplication不能與它們一起使用。 – ains

+0

的確如此。您可能還需要創建MyAndroidInput和MyAndroidAudio。幸運的是LibGdx是開源的。總的來說,我會說這部分可以改進。我會考慮在幾周內解決它的可能性。 –

2

更新: LibGdx現在支持Android片段,使用AndroidFragmentApplication。見documentation