2010-12-30 7 views
0

Ich habe 5 Tutorials für Android-Entwickler erfolgreich abgeschlossen, aber ich habe ein Problem mit dem Google Maps-Lernprogramm. Ich habe den Code Brief für Brief und ctrl eingegeben + Verschiebung + o alle Pakete zu importieren, und ich bin immer noch einen Fehler bekommen, dass mContext kann nicht aufgelöst werden. Ich bin mir sicher, dass es etwas Einfaches ist, ich habe gerade zu lange auf den Bildschirm geschaut, um es zu sehen.Google Maps Tutorial mContext kann nicht aufgelöst werden

package com.example.HelloGoogleMaps; 

import java.util.ArrayList; 

import android.app.AlertDialog; 
import android.content.Context; 
import android.graphics.drawable.Drawable; 

import com.google.android.maps.ItemizedOverlay; 
import com.google.android.maps.OverlayItem; 

public class HelloItemizedOverlay extends ItemizedOverlay { 

private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>(); 

public HelloItemizedOverlay(Drawable defaultMarker) { 
super(boundCenterBottom(defaultMarker)); 
} 

public void addOverlay(OverlayItem overlay) { 
mOverlays.add(overlay); 
populate(); 
} 

@Override 
protected OverlayItem createItem(int i) { 
// TODO Auto-generated method stub 
return mOverlays.get(i); 
} 

@Override 
public int size() { 
// TODO Auto-generated method stub 
return 0; 
} 

public HelloItemizedOverlay(Drawable defaultMarker, Context context) { 
super(defaultMarker); 
mContext = context; //ERROR #1 
} 

@Override 
protected boolean onTap(int index) { 
OverlayItem item = mOverlays.get(index); 
AlertDialog.Builder dialog = new AlertDialog.Builder(mContext); //ERROR #2 
dialog.setTitle(item.getTitle()); 
dialog.setMessage(item.getSnippet()); 
dialog.show(); 
return true; 
} 



} 

Antwort

1

Zuordnung irgendwo.

Context mContext; 
+0

Vielen Dank. Ich habe die Zuweisung oberhalb der ersten Instanz hinzugefügt und Eclipse gibt nur eine Warnung aus (lokale Variable mContext wird nie gelesen): Kontext mContext; mContext = Kontext; Ich habe auch die Zuordnung über der zweiten Instanz hinzugefügt und ich erhalte einen neuen Fehler (die lokale Variable mContext wurde möglicherweise nicht initialisiert): \t Context mContext; \t AlertDialog.Builder dialog = new AlertDialog.Builder (mContext); – HTN

+0

Ok, ich habe es herausgefunden. Danke Ausgestoßener. Ich habe die Aufgabe oben als erste Zeile der HelloItemizedOverlay-Klasse platziert. Sobald ich das gemacht habe, waren alle Fehler weg und die App lief reibungslos. – HTN

+0

Gern geschehen. Ich bin arm auf Englisch. Ich sollte etwas wie "Erklärung und Initialization, bevor Sie es verwenden." Das wird klarer. Nun, wie Sie vorsichtig sein sollten mit Ihrem Code, sollte ich vorsichtig sein Ich spreche. Übrigens, Frohes Neues Jahr !!! – outcast