如何移除GridAdapter构造方法中的mInterstitialAd参数 仅设置title参数
调整步骤
1. 修改GridAdapter构造方法定义
找到GridAdapter类的构造方法,移除第三个插屏广告参数,参考修改示例:
// 原构造方法 public GridAdapter(List<Set> sets, String title, InterstitialAd mInterstitialAd) { this.sets = sets; this.title = title; this.mInterstitialAd = mInterstitialAd; } // 修改后构造方法 public GridAdapter(List<Set> sets, String title) { this.sets = sets; this.title = title; // 移除mInterstitialAd相关的赋值逻辑 }
2. 修改Adapter实例化代码
调整当前页面的Adapter创建逻辑,删除第三个mInterstitialAd传参,同时修正原代码的变量拼写错误(adopter改为adapter):
gridView = findViewById(R.id.gridview); sets = CategoryActivity.list.get(getIntent().getIntExtra("position", 0)).getSets(); // 移除mInterstitialAd参数,仅保留sets和title GridAdapter adapter = new GridAdapter(sets, getIntent().getStringExtra("title")); gridView.setAdapter(adapter);
3. 清理Adapter内部的广告相关逻辑
如果GridAdapter内部原本有调用mInterstitialAd展示广告的逻辑,有两种处理方式:
- 不需要保留广告逻辑:直接删除所有
mInterstitialAd相关的调用代码即可 - 需要保留广告逻辑:给
GridAdapter添加条目点击回调接口,将广告触发逻辑移到当前Activity/Fragment中实现,避免Adapter直接持有广告实例
示例回调实现:
// GridAdapter中定义回调接口 public OnItemClickListener onItemClickListener; public interface OnItemClickListener { void onItemClick(int position); } public void setOnItemClickListener(OnItemClickListener listener) { this.onItemClickListener = listener; } // 条目点击时触发回调 holder.itemView.setOnClickListener(v -> { if (onItemClickListener != null) { onItemClickListener.onItemClick(position); } }); // Activity中设置回调处理广告 adapter.setOnItemClickListener(position -> { if (mInterstitialAd != null) { mInterstitialAd.show(MainActivity.this); } // 其他点击跳转逻辑 });
内容的提问来源于stack exchange,提问作者s4surajverma
相关产品推荐
相关产品推荐

