如何解决如何在片段开头显示插页式广告?
我正在尝试在打开或加载片段之前展示测试插页式广告。我的片段是从其他片段中调用的,我将测试广告的代码放入片段的onCreateView()中,该片段要在打开之前放置广告,但是在显示(打开)该片段时却没有广告出现,而相同的代码仍在工作并将广告放置在同一片段类的onResume()中时显示。目标API 16-30。任何帮助将不胜感激。
代码段:
@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
查看viewCalc2d = inflater.inflate(R.layout.fragment_calc2d,容器,false);
mInterstitialAd = new InterstitialAd(getActivity().getBaseContext());
mInterstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
mInterstitialAd.loadAd(new AdRequest.Builder().build());
mInterstitialAd.show();
//做某事
}
解决方法
1。首先创建一个对象类
object AdmobUtil {
private lateinit var interstitialAd: InterstitialAd
fun loadAdmobInterstitialAd(context: Context) {
interstitialAd = InterstitialAd(context)
interstitialAd.adUnitId = interstitialAdUnitId
interstitialAd.loadAd(AdRequest.Builder().build())
}
fun showInterstitialAd() {
if (interstitialAd.isLoaded) interstitialAd.show()
}
}
2。在显示片段之前先加载
class MainActivity : AppCompatActivity(R.layout.activity_main) {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
AdmobUtil.loadAdmobInterstitialAd(this)
}
}
- 现在显示已加载的广告
class AdFragment: Fragment(R.layout.fragment_ad) {
override fun onViewCreated(view: View,savedInstanceState: Bundle?) {
super.onViewCreated(view,savedInstanceState)
AdmobUtil.showInterstitialAd()
}
}
Java版本
public static class AdmobUtil {
private InterstitialAd interstitialAd = null;
public void loadAdmobInterstitialAd(Context ontext) {
interstitialAd = new InterstitialAd(context);
interstitialAd.setAdUnitId(interstitialAdUnitId);
interstitialAd.loadAd(new AdRequest.Builder().build());
}
public void showInterstitialAd() {
if (interstitialAd.isLoaded) interstitialAd.show();
}
}
public class MainActivity extends AppCompatActivity() {
@Override
public void onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main);
AdmobUtil.loadAdmobInterstitialAd(this);
}
}
public class AdFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_ad,container,false);
}
@Override
public void onViewCreated(view: View,savedInstanceState)
AdmobUtil.showInterstitialAd();
}
}
,
最后完成了。
1:创建了一个公共类来保存我的InterstitialAd广告对象:
公共类全局变量{
public static InterstitialAd mInterstitialAd;
}
2:在MainActivity的onCreate()中初始化并加载:
globals.mInterstitialAd = new InterstitialAd(this);
globals.mInterstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
globals.mInterstitialAd.loadAd(new AdRequest.Builder().build());
3:在目标片段的onCreateView()中显示广告:
if (!globals.mInterstitialAd.isLoaded())
globals.mInterstitialAd.loadAd(new AdRequest.Builder().build());
globals.mInterstitialAd.show();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。