Android Adwhirl 3.0布局问题

时间:2011-04-28 18:01:52

标签: android layout adwhirl

您好我正在努力让新的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()。

我知道这可能是一个简单的布局问题,但我看不到解决方案,任何帮助都会受到赞赏。

谢谢朋友们。

1 个答案:

答案 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。