我跟着谷歌的地图视图教程从这个链接http://developer.android.com/resources/tutorials/views/hello-mapview.html
我做了第一个关于创建地图活动,但有添加覆盖问题。这里是源代码:谷歌地图视图教程 - 覆盖
package rs.iz.stevy.wifi;
import java.util.ArrayList;
import android.graphics.drawable.Drawable;
import android.app.AlertDialog;
import android.content.Context;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.OverlayItem;
public class Overlay extends ItemizedOverlay {
public Overlay(Drawable defaultMarker, Context context) {
super(defaultMarker);
Context mContext;
mContext = context;
}
private ArrayList<OverlayItem>mOverlays= new ArrayList<OverlayItem>();
public Overlay(Drawable defaultMarker) {
super(boundCenterBottom(defaultMarker));
}
public void addOverlay(OverlayItem overlay) {
mOverlays.add(overlay);
populate();
}
@Override
protected OverlayItem createItem(int i) {
return mOverlays.get(i); }
@Override
public int size() {
return mOverlays.size();
}
@Override
protected boolean onTap(int index) {
OverlayItem item = mOverlays.get(index);
AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
dialog.setTitle(item.getTitle());
dialog.setMessage(item.getSnippet());
dialog.show();
return true;
}
}
错误出现在该行: AlertDialog.Builder对话框=新AlertDialog.Builder(mContext); Eclipse显示mContext无法解析为变量。
这里是Activity类:
rs.iz.stevy.wifi;
import java.util.List;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
public class WiFiKupacicaActivity extends MapActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MapView mapa= (MapView) findViewById(R.id.Mapa1);
mapa.setBuiltInZoomControls(true);
mapa.setSatellite(true);
GeoPoint initGeoPoint = mapa.getMapCenter();
List<Overlay> mapOverlays = mapa.getOverlays();
Drawable drawable = this.getResources().getDrawable(R.drawable.kupacica);
Overlay itemizedoverlay = new Overlay (drawable);
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
的Eclipse显示错误在该线无法实例叠加: 叠加itemizedoverlay =新重叠(绘制);
如果您在这里看到任何可以轻松修复的错误,请回答因为这是我第一次尝试编写Android应用程序。
@问题在于您用于添加叠加层的类名因此首先需要将类叠加层的名称更改为任何其他您喜欢MapOverlay然后将其扩展到ItemizedOverlay。 – Herry