У меня есть статический класс, содержащий элементы оверлея, который вызывается моим основным классом, а затем добавляется к самому оверлею.Не удается получить доступ к статическим методам из статического метода, Android: getResources() из типа ContextWrapper
Я могу заставить это работать без типов изображений, но я хотел бы использовать их, однако, когда я это сделаю, я получаю следующую ошибку: Невозможно сделать статическую ссылку на нестатический метод getResources() из типа ContextWrapper
Я попытался довольно много вещей, чтобы преодолеть это, следуя некоторые руководства я пытался добавить:
private static Context context;
public void onCreate(){
super.onCreate();
Mine.context = getApplicationContext();
}
public static Context getAppContext() {
return Mine.context;
}
Я также гарантировал, что у меня есть соответствующий класс в качестве приложения в манифесте.
Класс выглядит следующим образом:
public static ArrayList<ExtendedOverlayItem> array = new ArrayList<ExtendedOverlayItem>();
public ArrayList<ExtendedOverlayItem> getMine() {
return array;
}
public static void addMe() {
Drawable myDrawable = getResources().getDrawable(R.drawable.draw); //This is the line that doesn't work
ExtendedOverlayItem myMarker1 = new ExtendedOverlayItem(
"sample", "sample", new GeoPoint(85.123456,
-14.123456), null);
myMarker1.setMarker(myDrawable);
myMarker1.setDescription("This is a test description");
array.add(myMarker1);
}
private static Context context;
public void onCreate(){
super.onCreate();
Mine.context = getApplicationContext();
}
public static Context getAppContext() {
return Mine.context;
}
Я попытался добавить следующее:
myMarker1.setMarker(Mine.getAppContext().getResources().getDrawable(R.drawable.example));
Но я все еще получаю нулевые ошибки указателя при вызове из главного метода, если я покину изображения это называется правильно.
В основной метод, который я называю этот класс следующим образом:
Mine.addMe();
ItemizedOverlayWithBubble<ExtendedOverlayItem> thisThing = new ItemizedOverlayWithBubble<ExtendedOverlayItem>(this, Mine.array, map);
map.getOverlays().add(thisThing);
Любой совет высоко оценили.
Вы проверили, что ваш контекст равен нулю или нет? вы пробовали с контекстом активности? – Siddhesh
, на какой строке вы получите эту ошибку? – Siddhesh
Ошибка в строке: Drawable myDrawable = getResources(). GetDrawable (R.drawable.draw); Если я удалю это и ссылку на него, все будет работать. I. Указатель и описание отображаются на карте, но мне нужно иметь свой значок значка. – user2704807