代码之家  ›  专栏  ›  技术社区  ›  Jaydip Kalkani

android kotlin中的多个AdListener

  •  -1
  • Jaydip Kalkani  · 技术社区  · 7 年前

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

    所以,我的问题是,有没有办法像多个按钮一样减少这段代码 onClickListener 喜欢 this ? 我已经尝试过用与 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 回复  |  直到 7 年前
        1
  •  3
  •   pablisco    7 年前

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

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

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

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