您好我正在努力让新的Android 3.0 adwhirl工作,我正在努力。
在我的xml中我有:
在我的班级
...
的setContentView(R.layout.main);
//Add Whirl
AdWhirlManager.setConfigExpireTimeout(1000 * 60 * 5);
AdWhirlTargeting.setTestMode(false);
AdWhirlLayout adWhirlLayout = (AdWhirlLayout)findViewById(R.id.adwhirl_layout);
TextView textView = new TextView(this);
RelativeLayout.LayoutParams layoutParams = new
RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
int diWidth = 320;
int diHeight = 52;
int density = (int) getResources().getDisplayMetrics().density;
adWhirlLayout.setAdWhirlInterface(this);
adWhirlLayout.setMaxWidth((int)(diWidth * density));
adWhirlLayout.setMaxHeight((int)(diHeight * density));
layoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
textView.setText("Below AdWhirlLayout");
LinearLayout layout = (LinearLayout)findViewById(R.id.layout_main);
layout.setGravity(Gravity.CENTER_HORIZONTAL);
layout.addView(adWhirlLayout, layoutParams);
layout.addView(textView, layoutParams);
layout.invalidate();
...
然而,当我运行它时,我得到了
指定的孩子已经有父母。您必须首先在孩子的父母身上调用removeView()。
我知道这可能是一个简单的布局问题,但我看不到解决方案,任何帮助都会受到赞赏。
谢谢朋友们。
答案 0 :(得分:0)
当我试图让AdWhirl示例代码正常工作时,我实际上做了同样的事情。问题是您已经在XML文件中创建了一个带有AdWhirlLayout的布局,并且您正在检索该现有实例:
AdWhirlLayout adWhirlLayout = (AdWhirlLayout)findViewById(R.id.adwhirl_layout);
然后你试图将它添加回你所拥有的LinearLayout中:
layout.addView(adWhirlLayout, layoutParams);
你可以从XML文件中删除AdWhirlLayout并替换我提到的第一行代码,而不是创建一个新实例:
AdWhirlLayout adWhirlLayout = new AdWhirlLayout();
(我可能会错过构造函数的params,我在SO上手写这个。)
这将创建AdWhirlLayout的新实例并将其添加到layout_main LinearLayout。