2012-11-26 9 views
5

Mục tiêu của tôi: Tôi muốn sử dụng các phần dọc theo trò chơi libgdx của tôi trên Android.Làm cách nào để lớp AndroidApplication của LibGDX hỗ trợ Android Fragments?

Đây là vấn đề. Đối với một hoạt động để lưu trữ trò chơi libgdx, nó phải mở rộng lớp AndroidApplication.

public class MyGameActivity extends AndroidApplication {} 

Trong khi AndroidApplication cũng là một phần mở rộng của lớp Hoạt động

public class AndroidApplication extends Activity ... {} 

Tôi muốn sử dụng mảnh vỡ trên hoạt động, và đây là nơi mà vấn đề xuất phát. Tôi cũng cần phải làm cho MyGameActivity mở rộng FragmentActivity như vậy để hỗ trợ các đoạn

public class MyGameActivity extends FragmentActivity {} 

Nhưng trò chơi sẽ không chạy nếu nó không mở rộng AndroidApplication. Làm cách nào để khắc phục sự cố này?

Nếu duy nhất tôi có thể làm điều này ...

public class MyGameActivity extends AndroidApplication, FragmentActivity {} 

Tôi đang sử dụng các thư viện hỗ trợ để thực hiện các ứng dụng tương thích ngược.

Trả lời

1

Bạn không thể làm nhiều thừa kế trong Java và thậm chí nếu bạn có thể hoạt động như thế nào?

Những gì bạn có thể làm là sao chép mã này https://github.com/libgdx/libgdx/blob/master/backends/gdx-backend-android/src/com/badlogic/gdx/backends/android/AndroidApplication.java

trong lớp học của bạn được thừa kế từ FragmentActivity

public class MyAndroidApplication kéo dài FragmentActivity thực hiện ứng dụng

Và ở nơi nơi bạn nhanh chóng AndroidApplication bạn phải nhanh chóng MyAndroidApplication .

+0

Tôi đoán điều này sẽ phải làm ngay bây giờ. Mặc dù có các lớp khác yêu cầu lớp AndroidApplication như lớp AndroidInput và AndroidAudio và MyAndroidApplication sẽ không hoạt động với chúng. – ains

+0

Đó là sự thật. Có thể bạn cũng cần tạo MyAndroidInput và MyAndroidAudio. May mắn LibGdx là mã nguồn mở. Nói chung, tôi sẽ nói rằng phần này có thể được cải thiện. Tôi sẽ xem xét khả năng sửa chữa nó trong vòng vài tuần. –

2

CẬP NHẬT: LibGdx hiện hỗ trợ các đoạn Android, sử dụng AndroidFragmentApplication. Xem documentation