简体   繁体   English

如何使用 AdMob 在活动中加载插页式广告并在下一个活动中展示?

[英]How to load an Interstitial ad in an activity and show it in the next one with AdMob?

I'm trying to load an Intertstitial Ad in an activity and show it in a different one using Java and the AdMob SDK version 20. Does anybody know how I can do that?我正在尝试在一个活动中加载一个 Intertstitial 广告,并使用 Java 和 AdMob SDK 20 版在另一个活动中显示它。有人知道我该怎么做吗?

1st activity: StickerPackListActivity第一个活动:StickerPackListActivity

public class StickerPackListActivity extends AddStickerPackActivity {
public static final String EXTRA_STICKER_PACK_LIST_DATA = "sticker_pack_list";
private static final int STICKER_PREVIEW_DISPLAY_LIMIT = 5;
private LinearLayoutManager packLayoutManager;
private RecyclerView packRecyclerView;
private StickerPackListAdapter allStickerPacksListAdapter;
private WhiteListCheckAsyncTask whiteListCheckAsyncTask;
private ArrayList<StickerPack> stickerPackList;
private AdView mBanner1;
private AdView mBanner2;
private AdView mBanner3;
private AdView mBanner4;
public static InterstitialAd mInterstitialAd;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sticker_pack_list);
    packRecyclerView = findViewById(R.id.sticker_pack_list);
    stickerPackList = getIntent().getParcelableArrayListExtra(EXTRA_STICKER_PACK_LIST_DATA);
    showStickerPackList(stickerPackList);
    if (getSupportActionBar() != null) {
        getSupportActionBar().setTitle(getResources().getQuantityString(R.plurals.title_activity_sticker_packs_list, stickerPackList.size()));
    }

                        //Questa parte fa andare i banner, non eliminare.
    mBanner1 = findViewById(R.id.adViewtoplist);
    mBanner2 = findViewById(R.id.adViewbottomlist);
    mBanner3 = findViewById(R.id.adViewbottomlist2);
    mBanner4 = findViewById(R.id.adViewbottomlist3);
    AdRequest adRequest = new AdRequest.Builder().build();
    mBanner1.loadAd(adRequest);
    mBanner2.loadAd(adRequest);
    mBanner3.loadAd(adRequest);
    mBanner4.loadAd(adRequest);
                        //End
    InterstitialAd.load(this,"ca-app-pub-3940256099942544/1033173712", adRequest,
            new InterstitialAdLoadCallback() {
                @Override
                public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
                    mInterstitialAd = interstitialAd;
                }
            });
}

Second Activity: StickerPackDetailsActivity第二个活动:StickerPackDetailsActivity

public class StickerPackDetailsActivity extends AddStickerPackActivity {

/**
 * Do not change below values of below 3 lines as this is also used by WhatsApp
 */
public static final String EXTRA_STICKER_PACK_ID = "sticker_pack_id";
public static final String EXTRA_STICKER_PACK_AUTHORITY = "sticker_pack_authority";
public static final String EXTRA_STICKER_PACK_NAME = "sticker_pack_name";

public static final String EXTRA_STICKER_PACK_WEBSITE = "sticker_pack_website";
public static final String EXTRA_STICKER_PACK_EMAIL = "sticker_pack_email";
public static final String EXTRA_STICKER_PACK_PRIVACY_POLICY = "sticker_pack_privacy_policy";
public static final String EXTRA_STICKER_PACK_LICENSE_AGREEMENT = "sticker_pack_license_agreement";
public static final String EXTRA_STICKER_PACK_TRAY_ICON = "sticker_pack_tray_icon";
public static final String EXTRA_SHOW_UP_BUTTON = "show_up_button";
public static final String EXTRA_STICKER_PACK_DATA = "sticker_pack";

private RecyclerView recyclerView;
private GridLayoutManager layoutManager;
private StickerPreviewAdapter stickerPreviewAdapter;
private int numColumns;
private View addButton;
private View alreadyAddedText;
private StickerPack stickerPack;
private View divider;
private WhiteListCheckAsyncTask whiteListCheckAsyncTask;
public static InterstitialAd mInterstitialAd;

private static final String TAG = "MainActivity";


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sticker_pack_details);

    boolean showUpButton = getIntent().getBooleanExtra(EXTRA_SHOW_UP_BUTTON, false);
    stickerPack = getIntent().getParcelableExtra(EXTRA_STICKER_PACK_DATA);
    TextView packNameTextView = findViewById(R.id.pack_name);
    TextView packPublisherTextView = findViewById(R.id.author);
    ImageView packTrayIcon = findViewById(R.id.tray_image);
    TextView packSizeTextView = findViewById(R.id.pack_size);

    addButton = findViewById(R.id.add_to_whatsapp_button);
    alreadyAddedText = findViewById(R.id.already_added_text);
    layoutManager = new GridLayoutManager(this, 1);
    recyclerView = findViewById(R.id.sticker_list);
    recyclerView.setLayoutManager(layoutManager);
    recyclerView.getViewTreeObserver().addOnGlobalLayoutListener(pageLayoutListener);
    recyclerView.addOnScrollListener(dividerScrollListener);
    divider = findViewById(R.id.divider);
    if (stickerPreviewAdapter == null) {
        stickerPreviewAdapter = new StickerPreviewAdapter(getLayoutInflater(), R.drawable.sticker_error, getResources().getDimensionPixelSize(R.dimen.sticker_pack_details_image_size), getResources().getDimensionPixelSize(R.dimen.sticker_pack_details_image_padding), stickerPack);
        recyclerView.setAdapter(stickerPreviewAdapter);

    }
    packNameTextView.setText(stickerPack.name);
    packPublisherTextView.setText(stickerPack.publisher);
    packTrayIcon.setImageURI(StickerPackLoader.getStickerAssetUri(stickerPack.identifier, stickerPack.trayImageFile));
    packSizeTextView.setText(Formatter.formatShortFileSize(this, stickerPack.getTotalSize()));
    addButton.setOnClickListener(v -> addStickerPackToWhatsApp(stickerPack.identifier, stickerPack.name));

    if (getSupportActionBar() != null) {
        getSupportActionBar().setDisplayHomeAsUpEnabled(showUpButton);
        getSupportActionBar().setTitle(showUpButton ? getResources().getString(R.string.title_activity_sticker_pack_details_multiple_pack) : getResources().getQuantityString(R.plurals.title_activity_sticker_packs_list, 1));
    }
}

private void launchInfoActivity(String publisherWebsite, String publisherEmail, String privacyPolicyWebsite, String licenseAgreementWebsite, String trayIconUriString) {
    Intent intent = new Intent(StickerPackDetailsActivity.this, StickerPackInfoActivity.class);
    intent.putExtra(StickerPackDetailsActivity.EXTRA_STICKER_PACK_ID, stickerPack.identifier);
    intent.putExtra(StickerPackDetailsActivity.EXTRA_STICKER_PACK_WEBSITE, publisherWebsite);
    intent.putExtra(StickerPackDetailsActivity.EXTRA_STICKER_PACK_EMAIL, publisherEmail);
    intent.putExtra(StickerPackDetailsActivity.EXTRA_STICKER_PACK_PRIVACY_POLICY, privacyPolicyWebsite);
    intent.putExtra(StickerPackDetailsActivity.EXTRA_STICKER_PACK_LICENSE_AGREEMENT, licenseAgreementWebsite);
    intent.putExtra(StickerPackDetailsActivity.EXTRA_STICKER_PACK_TRAY_ICON, trayIconUriString);
    startActivity(intent);
}

Both activities are cut short as I'd like to both load and show the ad respectively with the OnCreate method of the first and the second activity.这两个活动都被缩短了,因为我想分别使用第一个和第二个活动的 OnCreate 方法加载和显示广告。

in First Activity Load Interstitial Ad在第一个活动加载插页式广告中

AND

in Second Activity Show It在第二个活动中展示它

Simple !简单的 !

如果你的意思是你想点击一个按钮来打开另一个活动,然后广告就会显示出来,那么很容易你可以在打开另一个活动的按钮的 onclick 中使用这一行

    mInterstitialAd.show(YourCurrentActivity.this); // note that mInterstitialAd is the Ad id

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM