2017-03-22 4 views
0

Ich versuche, Banner-Anzeigen zu meinem Spiel hinzuzufügen, und dafür brauche ich die Eltern-ViewGroup meines libgdx-Spiels. Mein Code ist:Wie bekomme ich die ViewGroup des libgdx-Spiels?

final Activity activity = (Activity) this; 
final ViewGroup parent = (ViewGroup) ((ViewGroup) findViewById(android.R.id.content)).getChildAt(0); // exception here 

Doch das Spiel stürzt ab, wenn ich versuche, dies mit dem folgenden Fehler:

java.lang.ClassCastException: 
    com.badlogic.gdx.backends.android.surfaceview.GLSurfaceView20 
    cannot be cast to android.view.ViewGroup 
+0

Wahrscheinlich mischen Sie zwei verschiedene Klassen mit dem gleichen Namen 'ViewGroup'. Von der Ausnahme können Sie sehen, dass es erwartet "android.view.ViewGroup", versuchen Sie, den vollständigen Klassennamen und sehen, ob das hilft. – munyul

Antwort

0

Versuchen, initializeForView Methode Rückkehr View so erhalten und zu Ihrem eigenen Layout und am Ende setContentView auf das Layout von setContentView Methode hinzufügen.

public RelativeLayout layout; 

@Override 
protected void onCreate (Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     layout = new RelativeLayout(this); 
     RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT); 
     layout.setLayoutParams(params); 

     AndroidApplicationConfiguration config = new AndroidApplicationConfiguration(); 
     View gameView=initializeForView(new Main(), config); 

     RelativeLayout.LayoutParams gameViewParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
     gameViewParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE); 
     gameViewParams.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE); 
     gameView.setLayoutParams(gameViewParams); 

     layout.addView(gameView); 
     //create banner view and embed/add into layout 

     setContentView(layout); 
} 
0

Ihr Wurzel Layout ist GLSurfaceView20, die ein Nachkomme von SurfaceView ist, der ein Nachkomme von View ist, nicht a ViewGroup.

How to get parent ViewGroup of libgdx game?

Beantwortung Ihrer Frage: Der Elternteil kann oder kein ViewGroup sein kann (in Ihrem Fall ist es nicht). Sie können den Inhalt View erhalten und instanceof Test durchführen, um zu sehen, ob es ein Abkömmling eines dieser ViewGroup

ist
Verwandte Themen