1

我正在尝试在我的应用程序中使用 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();
                        }
                    }
                });
    }
    }
4

1 回答 1

2

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

Resources res = context.getResources();

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

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

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

于 2017-01-14T20:40:41.250 回答