2009-07-31 18 views
4

Ich brauche ein wenig Hilfe von Leuten mit Erfahrung. Ich hoffe, es ist einfach. Ich möchte nur neue Ansicht (Erstellen ohneXML layouts) über Haupt-Programm anzeigen. Es ist AdMob.com Anzeigenblock zu integrieren:Android, neue Ansicht ohne XML hinzufügen Layout

ich einen solchen Code geschrieben:

AdView ad = new AdView(this); 
ad.layout(10, 10, 100, 100); 
ad.setVisibility(View.VISIBLE); 
ad.bringToFront(); 
ad.requestFocus(); 
ad.invalidate();

Wie Sie sehen - nichts half, kein Fenster sichtbar
Was mache ich falsch machen? Danke!

P.S. Ich machte in Activity 's onCreate(Bundle), aber ich versuchte es auch an anderen Orten.

Antwort

6

Sie haben das System nicht wirklich zu draw irgendetwas oder wohin es gezeichnet. Sie sollten sich die Dokumentation für setContentView(view) in Ihrer Aktivität ansehen. Wenn Sie versuchen, dies über Ihren aktuellen Bildschirm zu zeichnen, sehen Sie sich die Dokumentation für Dialog (und setContentView) an.

Wenn ich programmatisch beliebige Ansichten erstellen innerhalb einer bestehenden layout zu ziehen, ich in der Regel einen FrameLayout Tag meines layout XML hinzufügen, dann in dem Coderuf findViewById(), dann kann ich, dass FrameLayout Ansicht, die die view zu (addView() hinzufügen).

Ich hoffe, dass das hilft, ohne Ihren Code für Sie zu schreiben.

+0

Vielen Dank für Ihre Antwort. Ich habe bereits das Problem gelöst, alle Anwendungen mit XML neu zu erstellen und RelativeLayout oder AbsoluteLayout zu verwenden. – Vadim

+0

@lilbyrdie: Ich benutze den gleichen Ansatz wie Sie, aber die Anwendung erzwingt, wenn ich versuche, die Ansicht, die ich programmgesteuert zu meinem Rahmenlayout hinzugefügt, die in XML deklariert ist. Wenn ich Frame Frame Layout myFrameView.addView (viewBuiltProgrammatically) mache, schlägt es fehl. Warum denkst Du, das ist? – Namratha

+0

@Namratha: Sie sollten die Fehlerausgabe überprüfen, um zu sehen, was der Ausnahmetext sagt. Ohne weitere Informationen könnte es sein, dass Sie eine Einstellung verpasst oder etwas nicht erlaubt haben. – lilbyrdie

Verwandte Themen