I have a ViewPager
in MainActivity
that open a new Activity
when you touch each image that is inside an adapter.
Does anyone k
you should do like following code.... Declare this code in adapter class at the top... private InterstitialAd mInterstitialAd;
After this you put the rest of the code in your onBindViewHolder()
@Override
public void onBindViewHolder(@NonNull MyHolder holder, final int position) {
Picasso.get()
.load(picsArray[position])
.into(holder.imageView);
mInterstitialAd = new InterstitialAd(context);
mInterstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
mInterstitialAd.loadAd(new AdRequest.Builder().build());
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
// Code to be executed when an ad finishes loading.
}
@Override
public void onAdFailedToLoad(int errorCode) {
// Code to be executed when an ad request fails.
}
@Override
public void onAdOpened() {
// Code to be executed when the ad is displayed.
}
@Override
public void onAdLeftApplication() {
// Code to be executed when the user has left the app.
}
@Override
public void onAdClosed() {
Intent intent = new Intent(context, Full_Image_Activity.class);
intent.putExtra("IMG",picsArray[position]);
context.startActivity(intent);
///// onAdClosed() method you can put your intent or what ever you want, this is for when you close the add then the intent must know what to do... } });
}
After this you can put the code in your item.onClicklistner method like below..
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
} else {
Intent intent = new Intent(context, Full_Image_Activity.class);
intent.putExtra("IMG",picsArray[getAdapterPosition()]);
context.startActivity(intent);
}
}
});
In the else{} you can put your code like intent or whatever you want to do... Hope it will work for many peoples...
I have also faced this very same issue. In your case instead of opening interstitial ads from adapter activity, open it from next activity of adapter activity. Below is my Solution: Consider Activity_B as your Adapter activity.
Suppose there are 3 activities and opening sequence is as follows:
Activity_A --> Activity_B --> Activity_C.
Now I want to show interstitial Ad between Activity_B
and Activity_C
.
I have first loaded the Interstitial Ad in Activity_A and then call(or show) in Activity_C
.
You can do above like this:
In Activity_A i.e. MainActivity add code like this:
public void showme(){
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId(getString(R.string.interstitial_full_screen));
AdRequest adRequest = new AdRequest.Builder()
.build();
mInterstitialAd.loadAd(adRequest);
mInterstitialAd.setAdListener(new AdListener()
{
@Override
public void onAdClosed()
{
//reload interstitial
AdRequest adRequest = new AdRequest.Builder()
// .addTestDevice("YOUR_DEVICE_ID")
.build();
mInterstitialAd.loadAd(adRequest);
}
});
}
public static void showInterstitial() {
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
}
}
Call this showme() in Activity_A inside OnCreate.
In Activity_C paste below code inside OnCreate:
Activity_A.showInterstitial();
Also, this method doesn't violate any Google Admob policy of interstitial ads as well as banner ads.