【问题标题】:How To display Admob interstitial every time a button is clicked每次单击按钮时如何显示 Admob 插页式广告
【发布时间】:2016-11-08 11:42:08
【问题描述】:

我想知道每次按下按钮时如何显示 Admob 插页式广告。我设法展示了一个插页式广告,但只是在第一次按下按钮时。这是我的代码:

package com.mycash.borgjake.mycash;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import android.widget.Button;
import android.widget.TextView;

import android.view.View;

import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.InterstitialAd;

import static com.mycash.borgjake.mycash.R.styleable.View;

public class MainActivity extends AppCompatActivity {

private InterstitialAd mInterstitial;


Button btnClick;
Button btnWithdraw;

TextView txtBalance;

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    AdView adView = (AdView)findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder()
            .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
            .build();
    adView.loadAd(adRequest);

    btnClick = (Button) findViewById(R.id.button);

    txtBalance = (TextView) findViewById(R.id.textView);

    btnClick.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String countValue = txtBalance.getText().toString();
            int dblCountValue = Integer.parseInt(countValue);

            if(mInterstitial.isLoaded()) {
                mInterstitial.show();
            }

            dblCountValue++;
            txtBalance.setText(String.valueOf(dblCountValue));


        }
    });

    mInterstitial = new InterstitialAd(this);
    mInterstitial.setAdUnitId("...");
    AdRequest request = new AdRequest.Builder()
            .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
            .build();
    mInterstitial.loadAd(request);

}

public void onButtonClick(View v) {
    if(v.getId() == R.id.button2) {
        Intent i = new Intent(MainActivity.this, Withdraw.class);
        startActivity(i);
    }
  }
}

提前感谢您的帮助:)

【问题讨论】:

  • 调用 mInterstitial.loadAd(request);用户关闭插页式广告后。
  • 我该怎么做呢?
  • mInterstitialAd.setAdListener(new AdListener() { @Override public void onAdClosed() { // 继续代码。} });

标签: java android android-studio admob interstitial


【解决方案1】:

首先在按钮的onClick()方法中添加以下行,

AdRequest request = new AdRequest.Builder()
        .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
        .build();
mInterstitial.loadAd(request);

【讨论】:

    【解决方案2】:

    当用户点击按钮时加载您的广告,因此您需要在 btnClick.setOnClickListener 中编写代码

    btnClick.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            AdRequest request = new AdRequest.Builder()
            .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
            .build();
            mInterstitial.loadAd(request);
        }
    });
    

    【讨论】:

    • 我是安卓开发的初学者。对不起,我不明白。
    【解决方案3】:

    试试这个代码..

    首先,您需要将 InterstitialAd 和 AdRequest 变量声明为全局变量,例如..

    private InterstitialAd mInterstitialAd;
    private AdRequest adRequest;
    

    然后在您的活动 oncreate 方法中添加此代码..

    adRequest = new AdRequest.Builder().addTestDevice("PUT YOUR DEVICE TEST ID HERE").build();
    

    然后在按钮单击中编写此代码..

    mInterstitialAd = new InterstitialAd(getApplicationContext());
                    mInterstitialAd.setAdUnitId("ADD YOUR ADUNITID HERE");
                    mInterstitialAd.loadAd(adRequest);
                    mInterstitialAd.setAdListener(new AdListener() {
                        public void onAdLoaded() {
                            showInterstitial();
                        }
                    });
    

    最后在你的活动类中添加这个方法并运行你的项目..

    private void showInterstitial() {
        if (mInterstitialAd.isLoaded()) {
            mInterstitialAd.show();
        }
    }
    

    我希望这会奏效......

    【讨论】:

      【解决方案4】:

      你需要打电话

      mInterstitial.loadAd(request);
      

      在您的按钮单击监听器后显示它。

      最终代码;

      package com.mycash.borgjake.mycash;
      
      import android.content.Intent;
      import android.support.v7.app.AppCompatActivity;
      import android.os.Bundle;
      
      import android.widget.Button;
      import android.widget.TextView;
      
      import android.view.View;
      
      import com.google.android.gms.ads.AdListener;
      import com.google.android.gms.ads.AdRequest;
      import com.google.android.gms.ads.AdView;
      import com.google.android.gms.ads.InterstitialAd;
      
      import static com.mycash.borgjake.mycash.R.styleable.View;
      
      public class MainActivity extends AppCompatActivity {
      
      private InterstitialAd mInterstitial;
      
      
      Button btnClick;
      Button btnWithdraw;
      
      TextView txtBalance;
      
      @Override
      protected void onCreate(Bundle savedInstanceState) {
      
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      
      mInterstitial = new InterstitialAd(this);
      
      AdView adView = (AdView)findViewById(R.id.adView);
      AdRequest adRequest = new AdRequest.Builder()
              .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
              .build();
      adView.loadAd(adRequest);
      
      btnClick = (Button) findViewById(R.id.button);
      
      txtBalance = (TextView) findViewById(R.id.textView);
      
      btnClick.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
              String countValue = txtBalance.getText().toString();
              int dblCountValue = Integer.parseInt(countValue);
      
              if(mInterstitial.isLoaded()) {
                  mInterstitial.show();
              }
              AdRequest request = new AdRequest.Builder()
                .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
                .build();
              mInterstitial.loadAd(request);
      
              dblCountValue++;
              txtBalance.setText(String.valueOf(dblCountValue));
      
      
          }
      });
      
      mInterstitial.setAdUnitId("...");
      AdRequest request = new AdRequest.Builder()
              .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
              .build();
      mInterstitial.loadAd(request);
      
      }
      
      public void onButtonClick(View v) {
      if(v.getId() == R.id.button2) {
          Intent i = new Intent(MainActivity.this, Withdraw.class);
          startActivity(i);
          }
        }
      }
      

      只需复制和粘贴编辑过的代码。 :) 然后阅读以下说明。

      【讨论】:

      • 我收到一个错误。在代码行:mInterestitial.loadAd(request);
      • 我已经修复了上面的代码。尝试重新复制并粘贴它。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多