android kotlin

时间:2018-01-16 13:18:43

标签: android kotlin admob ads googleads-mobile-unity

我正在创建一个供个人使用的应用,该应用在单个活动中包含多个横幅广告。我想听取所有广告的onAdLoaded()个事件。为此,我必须为每个广告添加AdListener。如果我有十个广告,我是否必须写十次相同的代码?

所以,我的问题是,有没有办法像this之类的多个按钮onClickListener那样减少这些代码? 我已经尝试以与onClickListener按钮相同的方式执行此操作,但它不起作用。

我的部分代码:

    ad1.adListener = object : AdListener() {
        override fun onAdLoaded() {
            super.onAdLoaded()
            incrementCounter()
        }
    }

    ad2.adListener = object : AdListener() {
        override fun onAdLoaded() {
            super.onAdLoaded()
            incrementCounter()
        }
    }

    ad3.adListener = object : AdListener() {
        override fun onAdLoaded() {
            super.onAdLoaded()
            incrementCounter()
        }
    }

我必须为我的所有广告单元重复相同的代码。这会让我的代码变得笨重而且这是我的问题。

1 个答案:

答案 0 :(得分:2)

您可以将所有观点分组到列表中:

val adViews = listOf(ad1, ad2, ...)

然后,您可以迭代并设置监听器:

adViews.forEach { 
  it.adListener = object : AdListener() {
    override fun onAdLoaded() {
      super.onAdLoaded()
      incrementCounter()
    }
  } 
}