问题描述
//Inside onCreate()
var adRequest2 = AdRequest.Builder().build()
InterstitialAd.load(this,"ca-app-pub-myAppId",adRequest2,object : InterstitialAdLoadCallback() {
override fun onAdFailedToLoad(adError: LoadAdError) {
Log.d(TAG,adError?.message)
mInterstitialAd = null
}
override fun onAdLoaded(interstitialAd: InterstitialAd) {
Log.d(TAG,"Ad was loaded.")
mInterstitialAd = interstitialAd
}
})
//Inside onItemSelectedListener of spinner
if (counter%3==0){
if (mInterstitialAd != null) {
mInterstitialAd?.show(this@MainActivity)
} else {
Log.d("TAG","The interstitial ad wasn't ready yet.")
}
}
counter++
我有一个应用程序,它根据用户从下拉菜单/微调器中选择的内容显示一些数据。我想为微调器上选择的每 3 个项目显示一个插页式广告。我使用了 google admob 网站上的这段代码。但这只会在第三个选择后显示一次广告。它不会在第 6、第 9 次重新加载……等等。如何重新加载插页式广告?
解决方法
你应该在每次展示时重新加载广告:就像创建一个 loadAd 函数并每次在 onItemSelectListener 中调用它
加载广告功能
fun loadIADS(){
var adRequest = AdRequest.Builder().build()
InterstitialAd.load(this,"your_ID",adRequest,object : InterstitialAdLoadCallback() {
override fun onAdFailedToLoad(adError: LoadAdError) {
Log.d(TAG,adError?.message)
mInterstitialAd = null
}
override fun onAdLoaded(interstitialAd: InterstitialAd) {
Log.d(TAG,'Ad was loaded.')
mInterstitialAd = interstitialAd
}
})
}
展示广告
fun showIADS(){
if (mInterstitialAd != null) {
mInterstitialAd?.show(this)
} else {
Log.d("TAG"," ad wasn't ready ")
}
}
在 Oncreate 中,而不是初始化只是把这个
counter = 0
loadIADS()
在 onItemSelectedListener 就像你一样
if (counter%3==0){
showIADS()
}
loadIADS()
counter++
我刚刚将我的 java 代码转换为 kotlin 告诉我它是否显示错误