无法解析方法' getBaseContext()'在类中扩展了BaseAdapter

时间:2017-01-14 20:27:12

标签: android firebase firebase-remote-config

我正在尝试在我的应用中使用firebase远程配置功能。但我收到了错误 "无法解决方法' getBaseContext()'"。我的类扩展了BaseAdapter,如下所示。我只能使用方法请帮助。

    public class CustomAdapter_new extends BaseAdapter {
.....
......
........
         private void initRemoteConfig() {
        mRemoteConfig = FirebaseRemoteConfig.getInstance();

        Resources res = context.getResources();

        HashMap<String, Object> defaults = new HashMap<>();
        defaults.put("claimStatusEnquiry", context.getResources().getString(R.string.claimStatusEnquiry));        defaults.put("locateYourPfOffice", context.getResources().getString(R.string.locateYourOffice));
        defaults.put("faq", context.getResources().getString(R.string.faq));

        mRemoteConfig.setDefaults(defaults);
        FirebaseRemoteConfigSettings remoteConfigSettings = new FirebaseRemoteConfigSettings.Builder()
                .setDeveloperModeEnabled(true)
                .build();
        mRemoteConfig.setConfigSettings(remoteConfigSettings);
        fetchRemoteConfigValues();
    }

    private void fetchRemoteConfigValues() {
        long cacheExpiration = 600;

        //expire the cache immediately for development mode.
        if (mRemoteConfig.getInfo().getConfigSettings().isDeveloperModeEnabled()) {
            cacheExpiration = 0;
        }

        mRemoteConfig.fetch(cacheExpiration)
                .addOnCompleteListener(this, new OnCompleteListener<Void>() {
                    @Override
                    public void onComplete(Task<Void> task) {
                        if (task.isSuccessful()) {
                            // task successful. Activate the fetched data
                            mRemoteConfig.activateFetched();

                        } else {
                            //task failed
                            Toast.makeText(getBaseContext(), "Please Connect To Internet!!", Toast.LENGTH_SHORT).show();
                        }
                    }
                });
    }
    }

1 个答案:

答案 0 :(得分:2)

编译器并不撒谎。您的类没有名为getBaseContext()的方法。 BaseAdapter没有为您提供此方法。但是,您需要Context对象才能创建Toast。有很多方法可以访问Context。看来你已经有一个可用,因为你在行

中使用它
Resources res = context.getResources();

最有可能的是,您应该将getBaseContext()替换为context

Toast.makeText(context, ...).show();

我强烈建议您了解有关变量范围,类字段和方法参数的更多信息。这些都是Java中的基本概念。如果您了解这些内容的工作原理,那么编写Android app.s

会更容易