Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 地图视图无法解析或不是字段_Android_Android Sdk 2.3 - Fatal编程技术网

Android 地图视图无法解析或不是字段

Android 地图视图无法解析或不是字段,android,android-sdk-2.3,Android,Android Sdk 2.3,大家好,我对Android编程和Eclipse工作还不熟悉。我在以下程序中遇到错误“MapView无法解析或不是字段”: import java.util.List; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Canvas; import andro

大家好,我对Android编程和Eclipse工作还不熟悉。我在以下程序中遇到错误“MapView无法解析或不是字段”:

   import java.util.List;

   import android.app.AlertDialog;
   import android.content.DialogInterface;
   import android.content.Intent;
   import android.graphics.Canvas;
   import android.graphics.Paint;
   import android.graphics.Point;
   import android.graphics.RectF;
   import android.location.Location;
   import android.os.Bundle;
   import android.view.MotionEvent;


  import com.google.android.maps.GeoPoint;
  import com.google.android.maps.MapActivity;
  import com.google.android.maps.MapView;
  import com.google.android.maps.Overlay;
  import com.google.android.maps.Projection;

public class Map extends MapActivity {

MapView map;
long start;
long stop;
private final int mRadius = 5;

public void onCreate(Bundle SavedInstanceState) {
    super.onCreate(SavedInstanceState);
    setContentView(R.layout.mapview);
    map = (MapView)findViewById(R.id.mvMapview);
    map.setBuiltInZoomControls(true);
    map.displayZoomControls(true);
    map.setSatellite(true);
    map.setStreetView(true);
    Touchy t = new Touchy();
    List<Overlay> overlaylist = map.getOverlays();
    overlaylist.add(t);

    }
    public void draw(Canvas canvas, MapView mapView, boolean shadow){
    Projection projection = mapView.getProjection();

    if (shadow == false) {
        Bundle extras = getIntent().getExtras();{
            if(extras!=null){
                String longitude =extras.getString("Longitude");
                String latitude =extras.getString("Latitude");
            }
        }

        double latitude;
        double longitude; 
        GeoPoint geoPoint;
        geoPoint = new GeoPoint((int) ( latitude *1E6), (int) (longitude * 1E6));

        Point point = new Point();
        projection.toPixels(geoPoint, point);
        RectF oval = new RectF(point.x - mRadius, point.y - mRadius, point.x + mRadius, point.y + mRadius);

        Paint paint = new Paint();
        paint.setARGB(250, 255, 255, 255);
        paint.setAntiAlias(true);
        paint.setFakeBoldText(true);

        Paint backPaint = new Paint();
        backPaint.setARGB(175, 50, 50, 50);
        backPaint.setAntiAlias(true);
        RectF backRect = new RectF(point.x + 2 + mRadius, point.y - 3*mRadius, point.x + 65, point.y + mRadius);

        canvas.drawOval(oval, paint);
        canvas.drawRoundRect(backRect, 5, 5, backPaint);
        canvas.drawText("This is it", point.x + 2*mRadius, point.y,paint);
}
    super.draw(canvas.MapView.shadow);      
}
import java.util.List;
导入android.app.AlertDialog;
导入android.content.DialogInterface;
导入android.content.Intent;
导入android.graphics.Canvas;
导入android.graphics.Paint;
导入android.graphics.Point;
导入android.graphics.RectF;
导入android.location.location;
导入android.os.Bundle;
导入android.view.MotionEvent;
导入com.google.android.maps.GeoPoint;
导入com.google.android.maps.MapActivity;
导入com.google.android.maps.MapView;
导入com.google.android.maps.Overlay;
导入com.google.android.maps.Projection;
公共类映射扩展了MapActivity{
地图视图;
长起点;
长停;
私人最终int mRadius=5;
创建时的公共void(Bundle SavedInstanceState){
super.onCreate(SavedInstanceState);
setContentView(R.layout.mapview);
map=(MapView)findViewById(R.id.mvMapview);
map.setBuiltInZoomControls(真);
map.displayZoomControl(真);
地图.固定卫星(真);
map.setStreetView(真);
Touchy t=新Touchy();
List overlaylist=map.getOverlays();
叠加列表。添加(t);
}
公共空白绘制(画布、地图视图、地图视图、布尔阴影){
Projection=mapView.getProjection();
if(shadow==false){
Bundle extras=getIntent().getExtras(){
如果(附加值!=null){
字符串经度=extras.getString(“经度”);
字符串纬度=extras.getString(“纬度”);
}
}
双纬度;
双经度;
地质点;
地质点=新的地质点((int)(纬度*1E6),(int)(经度*1E6));
点=新点();
投影。toPixels(地质点、点);
RectF oval=新的RectF(点x-mRadius,点y-mRadius,点x+mRadius,点y+mRadius);
油漆=新油漆();
绘制.setARGB(250、255、255、255);
paint.setAntiAlias(真);
paint.setFakeBoldText(真);
油漆背面油漆=新油漆();
背漆.setARGB(175,50,50,50);
backPaint.setAntiAlias(真);
RectF backRect=新的RectF(点x+2+mRadius,点y-3*mRadius,点x+65,点y+mRadius);
画布。绘制椭圆形(椭圆形,油漆);
画布.drawRoundRect(backRect,5,5,backPaint);
canvas.drawText(“就是这样”,point.x+2*mRadius,point.y,paint);
}
super.draw(canvas.MapView.shadow);
}
我不知道为什么会出现这个错误。
我一直在尝试修复它,但mapview错误总是存在。请从Eclipse主菜单中选择Project>Properties。在Properties窗口中,单击左侧类别列表中的Android。然后,在右侧的清单中选择包含Google API的构建目标。单击OK关闭窗口。

选择Project>ProEclipse主菜单中的属性。在属性窗口中,单击左侧类别列表中的Android。然后,在右侧的检查表中选择包含Google API的构建目标。单击确定关闭窗口。

您是在模拟器中运行此操作吗?您是用Google API创建的吗?我的Google API…模拟器正在运行也很好…是
draw
方法是您自己的还是您试图覆盖onDraw方法?draw方法是我自己的。我将draw方法添加到覆盖层中您在模拟器中运行此方法吗?您是使用Google API创建的吗?获得了我的Google API…模拟器也运行得很好…是
draw
方法是您自己的还是您正在尝试ng覆盖onDraw方法?draw方法是我自己的。我将draw方法添加到Overlythen fix
canvas.MapView.shadow
中,使其成为正确的,因为该语法可能不正确。我怀疑您在有句点的地方需要逗号。Ya…TQ I thk它应该是逗号…但现在出现了另一个错误…它说“类型MapActivity的方法draw(Canvas、MapView、boolean)未定义”…我知道该方法draw来自类型Overlay…@SimonCheah:“是否有任何方法可以解决此问题?”--您声称已将“draw方法添加到Overlay中?”“,除了代码中没有
覆盖
之外。有对
Touchy
的引用,它可能是
覆盖
,但我不知道它是不是。也许你的
draw()
实现应该在
Touchy
,而不是
映射
。我的意思是如果我更改了(公共类映射扩展MapActivity)到(公共类映射扩展覆盖)错误消失了,但编程的其他部分需要扩展MapActivity…@SimonCheah:编程新手在尝试进入Android开发之前应该先学习Java。然后将
canvas.MapView.shadow
修复为正确的,因为该语法可能不正确。我怀疑在有句点的地方需要逗号s、 是的…TQ I thk应该是逗号…但是现在出现了另一个错误…它说“类型MapActivity的方法draw(Canvas、MapView、boolean)未定义”…我知道方法draw来自类型Overlay…@SimonCheah:“是否有任何方法可以修复此问题?”--您声称您已将“draw方法添加到Overlay中”,除了你的代码中没有
Touchy
之外。有对
Touchy
的引用,它可能是
Overlay
,但我不知道它是不是。也许你的
draw()
实现应该在
Touchy
,而不是
映射中。我的意思是如果我更改了(公共类映射扩展了MapActivity)到(公共类映射扩展了Overlay)错误消失了,但是编程的其他部分需要扩展MapActivity…@SimonCheah:编程新手应该在尝试进入Android开发之前学习Java。