Не удается разрешить метод getBaseContext() в классе extends BaseAdapter
Я пытаюсь использовать функцию удаленной настройки 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 ответ
Компилятор не лжет. В вашем классе нет метода с именем getBaseContext()
, BaseAdapter
не предоставляет этот метод для вас. Тем не менее, вам нужно Context
объект для того, чтобы создать Toast
, Есть много способов получить доступ к Context
, Похоже, что у вас уже есть один доступный, так как вы используете его в строке
Resources res = context.getResources();
Скорее всего, стоит просто заменить getBaseContext()
с context
:
Toast.makeText(context, ...).show();
Я настоятельно рекомендую вам узнать больше о области видимости переменных, полях классов и параметрах методов. Все это фундаментальные понятия в Java. Если вы понимаете, как все это работает, вам будет намного легче писать приложения для Android.