我正在创建一个供个人使用的应用,该应用在单个活动中包含多个横幅广告。我想听取所有广告的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()
}
}
我必须为我的所有广告单元重复相同的代码。这会让我的代码变得笨重而且这是我的问题。
答案 0 :(得分:2)
您可以将所有观点分组到列表中:
val adViews = listOf(ad1, ad2, ...)
然后,您可以迭代并设置监听器:
adViews.forEach {
it.adListener = object : AdListener() {
override fun onAdLoaded() {
super.onAdLoaded()
incrementCounter()
}
}
}