-1

我正在制作一个供个人使用的应用程序,它在一个活动中包含多个横幅广告。我想听onAdLoaded()所有广告的事件。为此,我必须AdListener为每个广告投放。如果我有十个广告,我是否必须编写十次相同的代码?

所以,我的问题是有没有办法像这样的多个按钮来减少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()
        }
    }

我必须为我的所有广告单元重复相同的代码。这使我的代码变得庞大,这是我的问题。

4

1 回答 1

3

您可以将所有视图分组到一个列表中:

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

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

adViews.forEach { 
  it.adListener = object : AdListener() {
    override fun onAdLoaded() {
      super.onAdLoaded()
      incrementCounter()
    }
  } 
}
于 2018-01-16T14:12:49.247 回答