Android, ajouter un nouveau point de vue, sans Mise en page XML
J'ai besoin d'un peu d'aide de personnes avec activité. J'espère que c'est facile.
Je veux juste montrer une nouvelle Vue (création sans XML layouts
) ci-dessus, le programme principal.
C'est d'intégrer AdMob.com ad block:
J'ai écrit ce code:
AdView ad = new AdView(this);
ad.layout(10, 10, 100, 100);
ad.setVisibility(View.VISIBLE);
ad.bringToFront();
ad.requestFocus();
ad.invalidate();
Comme vous le voyez - rien n'y fait, pas de fenêtre visible
Que dois-je faire de mal?
Merci!
P. S. j'ai fait dans Activity
's onCreate(Bundle)
, mais j'ai essayé dans d'autres endroits aussi.
OriginalL'auteur Vadim | 2009-07-31
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas dit que le système
draw
quoi que ce soit ou à tracer. Vous aurez envie de regarder la documentationsetContentView(view)
sur votre Activité. Si vous essayez d'obtenir ce pour dessiner sur votre écran, regardez la documentation deDialog
(etsetContentView
).Quand je suis par programme créer des vues pour dessiner à l'intérieur d'un
layout
, je l'habitude d'ajouter unFrameLayout
tag à monlayout XML
, puis dans le code d'appelfindViewById()
, alors je peux utiliser queFrameLayout
vue d'ajouter l'view
(addView()
).J'espère que ça aide certains sans écrire votre code pour vous.
Je suis en utilisant la même démarche que vous, mais l'application de la force se ferme lorsque j'essaie d'ajouter le point de vue que j'ai construit par programme pour mon cadre de mise en page qui est déclarée dans le XML. Donc quand je le fais, le Cadre de Mise en page myFrameView.addView(viewBuiltProgrammatically), il échoue. Pourquoi pensez-vous que c'est?
Vous aurez envie de vérifier la sortie d'erreur pour voir ce que le texte dit. Sans aucune information, je suppose que vous avez manqué un paramètre ou de définir quelque chose qui n'est pas autorisé.
J'ai le redoutable IllegalStateException: java.lang.IllegalStateException: L'enfant spécifié dispose déjà d'un parent. Vous devez appeler removeView() sur le parent de l'enfant en premier. J'ai essayé d'appeler ((ViewGroup)de l'enfant.getParent()).removeView(enfant)); mais ça ne fonctionne pas. Dans un cas, l'enfant.getParent() renvoie la valeur null dans un autre cas, le removeView juste ne semble avoir aucun effet du tout, (l'appel de addView par la suite encore les résultats à l'exception IllegalStateException)
OriginalL'auteur lilbyrdie