You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android开发报错:<anonymous OnClickListener>无法转换为Context

问题解决:类型不匹配错误(无法转换为Context)

错误原因

你在button2.setOnClickListener的匿名内部类OnClickListener中调用InterstitialAd.load()时,第一个参数用了this——这里的this指向的是匿名的OnClickListener实例,而InterstitialAd.load()要求第一个参数是Context类型(需要当前Activity的上下文),所以出现了类型不匹配的错误。

修复代码

把InterstitialAd.load()里的this替换为ForexScalping.this,这样就能正确传递当前Activity的上下文:

InterstitialAd.load(ForexScalping.this,ForexScalping.this.getString(R.string.main_inter), adRequest,
        new InterstitialAdLoadCallback() {
            @Override
            public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
                mInterstitialAd = interstitialAd;
                mInterstitialAd.show(ForexScalping.this);
            }
            // 建议补充onAdFailedToLoad等必要回调方法,处理广告加载失败的情况
        }
);

额外说明

在Java的内部类(包括匿名内部类)中,直接使用this会指向内部类自己的对象;如果要引用外部类的对象,需要用外部类名.this的格式,比如这里的ForexScalping.this就代表当前的ForexScalping Activity实例,它是合法的Context实现类。

内容的提问来源于stack exchange,提问作者George Miller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 07:15:06