我正在尝试在我的应用中使用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();
}
}
});
}
}
答案 0 :(得分:2)
编译器并不撒谎。您的类没有名为getBaseContext()
的方法。 BaseAdapter
没有为您提供此方法。但是,您需要Context
对象才能创建Toast
。有很多方法可以访问Context
。看来你已经有一个可用,因为你在行
Resources res = context.getResources();
最有可能的是,您应该将getBaseContext()
替换为context
:
Toast.makeText(context, ...).show();
我强烈建议您了解有关变量范围,类字段和方法参数的更多信息。这些都是Java中的基本概念。如果您了解这些内容的工作原理,那么编写Android app.s
会更容易