android - 如何在标签布局中实现插页式广告?
问题描述
当我将一个标签移动到另一个标签时,我需要实施有趣的广告。我使用下面的代码来使用它,但没有显示有趣的广告。我怎样才能做到这一点?
public class MainActivity extends AppCompatActivity {
private TabLayout tabLayout;
private ViewPager viewPager;
private int[] tabIcons = {
R.drawable.score,
R.drawable.fix,
R.drawable.tv
};
public static int int_items = 3 ;
private InterstitialAd mInterstitialAd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mInterstitialAd = new InterstitialAd(MainActivity.this);
mInterstitialAd.setAdUnitId(Ad_code.Interstitial2);
mInterstitialAd.loadAd(new AdRequest.Builder().addTestDevice("B167DCA4FD495BF41A2298FBC4894E56").build());
viewPager = (ViewPager) findViewById(R.id.viewpager);
setupViewPager(viewPager);
tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
setupTabIcons();
}
}
private void setupTabIcons() {
tabLayout.getTabAt(0).setIcon(tabIcons[0]);
tabLayout.getTabAt(1).setIcon(tabIcons[1]);
tabLayout.getTabAt(2).setIcon(tabIcons[2]);
}
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
public void onPageScrollStateChanged(int state) {}
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}
public void onPageSelected(int position) {
if(position == 1)
showInterstitial();
}
});
adapter.addFrag(new ScoreFrag(), "A");
adapter.addFrag(new FixtureFrag(), "B");
adapter.addFrag(new TVFrag2(), "C");
viewPager.setAdapter(adapter);
}
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
if(position == 0){
return new AFragment();
}
if(position == 1){
return new BFragment();
}
if(position == 2){
return new CFragment();
}
return null;
}
@Override
public int getCount() {
return int_items;
}
public void addFrag(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
switch (position){
case 0 :
return "A";
case 1 :
return "B";
case 2 :
return "C";
}
return mFragmentTitleList.get(position);
}
}
final public void showInterstitial(){
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
super.onAdLoaded();
if(mInterstitialAd.isLoaded()){
mInterstitialAd.show();
}
}
@Override
public void onAdClosed() {
}
});
}
现在我需要在用户转到 A 到 B 片段、B 到 C 片段、C 到 B 片段、B 到 A 片段和 C 到 A 片段时放置插页式广告。这只是一个测试目的,所以我需要在这里放置很多广告。
我的片段代码
public FixtureFrag() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_one, container, false);
this.context = getActivity();
pbar = v.findViewById(R.id.progressBar1);
return v;
}
主要问题在哪里?我是初学者。那么有人可以给我解决方案吗?
解决方案
tab_layout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewpager.setCurrentItem(tab.getPosition());
if (tab.getPosition() == 6 || tab.getPosition() == 11 )
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
mInterstitialAd.loadAd(new AdRequest.Builder().build());
}
});
推荐阅读
- android - 更改数据后如何刷新recyclerView
- node.js - Dotenv 在不同的环境中表现不同(不解析引号)
- python - 如何打印“Hello world!” 使用 Python 2.7?
- javascript - 以 HTML 格式显示网络摄像头控制台消息
- r - 是否有用于检查路径中是否存在具有特定扩展名的文件的 R 函数?
- git - 设置 .ssh\config 文件和 Intellij 以推送到 gitlab
- r - 在 R 中使用 sqldf 和/或 dplyr 过滤 data.frame
- javascript - 如何将对象列表映射到数组数组中
- javascript - 如何跳出 JavaScript 循环
- vue.js - Vue 组件中的革命滑块