【问题标题】:How to add AdView from AdMob to a ListView如何将 AdMob 中的 AdView 添加到 ListView
【发布时间】:2011-04-01 23:33:39
【问题描述】:

我对如何让 admob 中的 adview 与 listview 一起工作感到困惑。我是广告新手,刚刚完成基本教程,但现在正试图放入我自己的应用程序中。我有一些东西被注释掉了,我试着开始做。

        // Create the adView
    AdView adView = new AdView(this, AdSize.BANNER, myID);
    // Lookup your LinearLayout assuming it’s been given
    // the attribute android:id="@+id/mainLayout"
   // LinearLayout layout = (LinearLayout)findViewById(R.id.linearLayout);
    // Add the adView to it
    lv.addView(adView);
    // Initiate a generic request to load it with an ad
    adView.loadAd(new AdRequest());

<TextView android:id="@+id/itemName" android:layout_width="wrap_content"
    android:layout_height="50dip" android:text="Test view" 
    android:textSize = "25sp"
    android:singleLine = "true"/>

04-01 19:28:58.163: 错误/AndroidRuntime(421): 致命异常: main 04-01 19:28:58.163: 错误/AndroidRuntime(421): java.lang.RuntimeException:无法启动活动 组件信息{org.demo.textaway2/org.demo.textaway2.TextAway2}: java.lang.UnsupportedOperationException: addView(View) 不是 在 AdapterView 04-01 19:28:58.163 中支持: 错误/AndroidRuntime(421):在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 04-01 19:28:58.163: 错误/AndroidRuntime(421): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 04-01 19:28:58.163: 错误/AndroidRuntime(421): 在 android.app.ActivityThread.access$2300(ActivityThread.java:125) 04-01 19:28:58.163:错误/AndroidRuntime(421):在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 04-01 19:28:58.163: 错误/AndroidRuntime(421): 在 android.os.Handler.dispatchMessage(Handler.java:99) 04-01 19:28:58.163:错误/AndroidRuntime(421):在 android.os.Looper.loop(Looper.java:123) 04-01 19:28:58.163: 错误/AndroidRuntime(421):在 android.app.ActivityThread.main(ActivityThread.java:4627) 04-01 19:28:58.163:错误/AndroidRuntime(421):在 java.lang.reflect.Method.invokeNative(Native Method) 04-01 19:28:58.163:错误/AndroidRuntime(421):在 java.lang.reflect.Method.invoke(Method.java:521) 04-01 19:28:58.163: 错误/AndroidRuntime(421):在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 04-01 19:28:58.163: 错误/AndroidRuntime(421): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 04-01 19:28:58.163:错误/AndroidRuntime(421):在 dalvik.system.NativeStart.main(本机方法)04-01 19:28:58.163: 错误/AndroidRuntime(421):由以下原因引起: java.lang.UnsupportedOperationException: addView(View) 不是 在 AdapterView 04-01 19:28:58.163 中支持: 错误/AndroidRuntime(421):在 android.widget.AdapterView.addView(AdapterView.java:435) 04-01 19:28:58.163:错误/AndroidRuntime(421):在 org.demo.textaway2.TextAway2.onCreate(TextAway2.java:164) 04-01 19:28:58.163:错误/AndroidRuntime(421):在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 04-01 19:28:58.163: 错误/AndroidRuntime(421): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 04-01 19:28:58.163: 错误/AndroidRuntime(421): ... 11 更多

【问题讨论】:

  • schemas.android.com/apk/res/android" android:id="@+id/linearLayout" android:layout_width ="fill_parent" android:layout_height="wrap_content" android:orientation="horizo​​ntal" android:paddingLeft="5dp" android:paddingRight="5dp">

标签: android admob


【解决方案1】:

堆栈跟踪包括:

addView(View) is not supported in AdapterView

这回答了您的问题 - 您不能在 AdapterView 或其子类中使用 AdMob,而您正在尝试这样做。您需要编写自己的 View 类来呈现列表对象,使用不同的广告服务(adwhirl 等 - 也许另一个没有此限制)或将广告移到列表之外,进入页脚/标题。

【讨论】:

  • 这是关于 addView 方法的消息,而不是 AdMob 提供的 AdView 小部件。您不能使用addView 将任何类型的小部件添加到 ListView,因为您应该使用适配器返回列表显示的视图,而不是显式添加它们。您可以通过编写一个适配器来在列表中显示一个 AdView 小部件,该适配器从 getView 方法返回一个 AdView 实例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多