Как я могу добраться до getResources () и Context, кроме класса Activity? - PullRequest
2 голосов
/ 26 января 2012

Я знаю, что этот вопрос является общим, но я всегда сталкиваюсь с этой проблемой.У меня вопрос: я могу достичь getResource() или getContext() в Activity, но когда я хочу использовать класс без примера активности: public class MapOverlay extends ItemizedOverlay

, я не могу достичь getResources() или Context.

Как мне сделать, чтобы кто-нибудь знал какой-нибудь трюк?

Ответы [ 3 ]

1 голос
/ 26 января 2012

Обычно я делаю это следующим образом:

  • Создайте класс, который расширяет Application, скажем MyApp.
  • Объявите поле private static Context context
  • Объявить (статический) метод получения для поля context
  • Инициализировать поле в onCreate(): context = this

Теперь контекст доступен во всех приложениях через MyApp.context()

0 голосов
/ 26 января 2012

ItemizedOverlay не расширяется android.content.Context.

Вы можете создать конструктор как

private Context mContext;    
public MapOverlay(Context context){
this.mContext=context;
}

, а затем использовать поле mContext для вызова getResource() или getContext() методов.

0 голосов
/ 26 января 2012

Просто предоставьте публичный метод внутри MapOverlay, который принимает Context.

  public void setContext(Context context) {
        mContext = context;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...