我有一個靜態類,其中包含由我的主類調用,然後添加到疊加層本身的疊加項目。無法從靜態方法訪問靜態方法Android:getResources()從類型ContextWrapper
我可以得到這個工作,沒有圖像類型,但我想使用它們,但是當我這樣做時,我得到以下錯誤: 無法從類型的ContextWrapper的非靜態方法getResources()
我已經嘗試了不少東西要克服這一點,通過下面的一些導遊我已嘗試添加:
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));
但是從main方法調用時,我仍然得到空指針錯誤,如果我離開圖像出來,它被正確地調用。
在main方法我把這種類,如下所示:
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);如果我刪除這個以及對它的引用,那麼一切正常。即,指針和描述顯示在地圖上,但我需要自定義指針圖標。 – user2704807