微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在片段开头显示插页式广告?

如何解决如何在片段开头显示插页式广告?

我正在尝试在打开或加载片段之前展示测试插页式广告。我的片段是从其他片段中调用的,我将测试广告的代码放入片段的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)
    }
}
  1. 现在显示已加载的广告
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 举报,一经查实,本站将立刻删除。