Проблема с версией Android Adwhirl 3.0
Привет, я пытаюсь заставить работать новый Android 3.0 AdWirl, и я изо всех сил.
В моем 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 ответ
Я фактически сделал то же самое, что и вы, когда пытался заставить работать пример кода AdWhirl. Проблема в том, что вы создали макет с AdWhirlLayout в файле XML и извлекаете этот существующий экземпляр:
AdWhirlLayout adWhirlLayout = (AdWhirlLayout)findViewById(R.id.adwhirl_layout);
И затем вы пытаетесь добавить его обратно в полученную LinearLayout:
layout.addView(adWhirlLayout, layoutParams);
Вы можете просто удалить AdWhirlLayout из XML-файла и заменить первую строку кода, которую я упомянул, создав новый экземпляр:
AdWhirlLayout adWhirlLayout = new AdWhirlLayout();
(Возможно, мне не хватает параметров для конструктора, я пишу это вручную на SO.)
Это создаст новый экземпляр AdWhirlLayout и добавит его в ваш layout_main LinearLayout.