2011-07-26 15 views
1

我的簡單的應用程序有谷歌地圖覆蓋。還有一個onDraw()方法在我的位置放置一個圖標。當我點擊後退按鈕的應用程序不會關閉或活動之前去:(這是我在活動中使用的方法。返回按鈕不工作在Android谷歌mp

public boolean onKeyDown(int keyCode, KeyEvent event) { 

     if (keyCode == KeyEvent.KEYCODE_I) { 
      gMapView.getController().setZoom(gMapView.getZoomLevel() + 1); 
      return true; 
     } else if (keyCode == KeyEvent.KEYCODE_O) { 
      gMapView.getController().setZoom(gMapView.getZoomLevel() - 1); 
      return true; 
     } else if (keyCode == KeyEvent.KEYCODE_S) { 
      gMapView.setSatellite(true); 
      return true; 
     } else if (keyCode == KeyEvent.KEYCODE_T) { 
      gMapView.setTraffic(true); 
      return true; 
     } 
     return false; 
    } 



/* Class overload draw method which actually plot a marker,text etc. on Map */ 

protected class MyLocationOverlay extends com.google.android.maps.Overlay { 

    @Override 
    public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when) { 
     Paint paint = new Paint(); 

     super.draw(canvas, mapView, shadow); 
     // Converts lat/lng-Point to OUR coordinates on the screen. 
     Point myScreenCoords = new Point(); 
     mapView.getProjection().toPixels(p, myScreenCoords); 

     paint.setStrokeWidth(1); 
     paint.setARGB(255, 255, 255, 255); 
     paint.setStyle(Paint.Style.STROKE); 

     Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.passenger); 

     canvas.drawBitmap(bmp, myScreenCoords.x, myScreenCoords.y, paint); 
     canvas.drawText("I am here...", myScreenCoords.x, myScreenCoords.y, paint); 
     return true; 

    } 

回答

1

你應該在方法的末尾刪除return true;,而是把一個else語句return super.onKeyDown(keyCode, event); insid它的。

+0

謝謝,工作正常:) –

1
public boolean onKeyDown(int keyCode, KeyEvent event) { 

     if (keyCode == KeyEvent.KEYCODE_I) { 
      gMapView.getController().setZoom(gMapView.getZoomLevel() + 1); 
      return true; 
     } else if (keyCode == KeyEvent.KEYCODE_O) { 
      gMapView.getController().setZoom(gMapView.getZoomLevel() - 1); 
      return true; 
     } else if (keyCode == KeyEvent.KEYCODE_S) { 
      gMapView.setSatellite(true); 
      return true; 
     } else if (keyCode == KeyEvent.KEYCODE_T) { 
      gMapView.setTraffic(true); 
      return true; 
     } 
     return super.onKeyDown(keyCode, event); 
    } 

試試這個

+0

感謝它現在正常工作:) –

0

上添加以下代碼onkeydown事件方法的其他部分。

return super.onKeyDown(keyCode, event); 
+0

感謝它現在工作正常:) –