2011-08-08 4 views
1

私はGlSurfaceViewに別のビューを追加しようとしていますが、エラーは発生し続けます。ヘルプGLSurfaceViewに別のビューを追加する

glViewは常に-1を与えたが、今これを私は「java.lang.IllegalStateExceptionを得るように私は「SETID」を追加した
glView = new GLSurfaceView(this); 
     glView.setRenderer(this); 
     setContentView(glView); 

     glView.setId(932203934); 
     int newID = glView.getId(); 

      // Create the adView 
     AdView adView = new AdView(this, AdSize.BANNER, "a14e3ef0948eb58"); 
     // Lookup your LinearLayout assuming it’s been given 
     // the attribute android:id="@+id/mainLayout" 
     //LinearLayout layout = (LinearLayout)findViewById(newID); 
     GLSurfaceView layout = (GLSurfaceView)findViewById(newID); 
     // Add the adView to it 
     this.addContentView(layout, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); 
     //layout.addView(adView); 
     // Initiate a generic request to load it with an ad 
     adView.loadAd(new AdRequest()); 

:指定された子は、すでに親を持っているあなたはremoveView(呼び出す必要があります)に子供の親が最初に。

明らかに私はこの権利を行使していないので、どのようにglsurfaceviewにこの追加のビューを持っていましたか?

おかげ

+1

GLSurfaceViewはViewParentではありません。ルートビューはRelativeLayoutでなければなりません。あなたがfindById()することができるようにidを与えてから、addView()を呼び出してadViewを追加します。 –

+0

申し訳ありません現在xmlを使用していませんが、現在はRelativeLayoutsがありません。なぜ今作成する必要がありますか?私は新しいLinearLayoutを追加するために結びつけ、XMLとして作成しましたが、次のようにするとnullを返します。LinearLayout layout =(LinearLayout)findViewById(R.id.linearLayout); – Chris

答えて

2

この問題を持つ他の誰....

AdView adView = new AdView(this, AdSize.BANNER, "a14e3ef0948eb58"); 
     LinearLayout ll = new LinearLayout(this); 
     ll.addView(adView); 
     this.addContentView(ll, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 
     AdRequest request = new AdRequest(); 
     request.setTesting(true); 
     adView.loadAd(request); 
関連する問題