2011-07-26 8 views
1

私の単純なアプリケーションは、オーバーレイ付きのGoogleマップを持っています。私の場所にアイコンを配置するonDraw()メソッド。私は、アプリケーションが近いかアクティビティの前に行っていないバックボタンをクリックすると:(これは私が私の活動に使用される方法である。アンドロイドgoogleで戻るボタンが動作しない

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;を削除し、代わりにreturn super.onKeyDown(keyCode, event); insidでelse文を置く必要がありますそれのe。

+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

ありがとうございました。現在はうまく動作しています:) –

関連する問題