2017-09-28 7 views
0

私は現在、マップが必要なAndroidスタジオアプリを開発中です。 このマップでは、マーカーと呼ばれるボタンがあります。私がこのボタンを使ってやりたいことは、それを押すたびに現在の場所にマーカーを表示することです。この方法の問題点は、そのパラメータが場所私はその上にアプリやプレスを初期化する時はいつでもそう、私のアプリを停止する場所と、エラーであることを[マーカーの追加]ボタンが機能しないのはなぜですか?

private void drawMarker(Location location) { 
     if (mMap != null) { 
      mMap.clear(); 
      LatLng gps = new LatLng(location.getLatitude(), location.getLongitude()); 
      mMap.addMarker(new MarkerOptions().position(gps)); 
      mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(gps, 16)); 
     } 

    } 

です:私は次のメソッドを持っていることを行うには

表示されます。これは、私のパラメータがViewビューである必要があるためです。

これはエラーです: java.lang.IllegalStateException:idを持つビュークラスandroid.widget.Button上のonClickハンドラのアクティビティクラスcom.naluapp.naluapp.MapsActivity方法のdrawMarker(ビュー)を見つけることができませんでした ' addMarker

マップのアクティビティに可変ロケーションの場所を入れてこれを解決しようとしましたが、問題は解決しません。私はこの種の言語にうまくいないので、あなたの助けが必要です。あなたはこれを解決する方法を知っていますか?

答えて

0

XMLレイアウトで参照するメソッドは、Viewパラメータを持つ必要があり、メソッドはpublicである必要があります。

ちょうどショーhereとしての活性におけるLocationメンバ変数を定義し、drawMarker()メソッド内で参照:

public void drawMarker(View v) { 
    if (mMap != null && mLastLocation != null) { 
     mMap.clear(); 
     LatLng gps = new LatLng(mLastLocation.getLatitude(), mLastLocation.getLongitude()); 
     mMap.addMarker(new MarkerOptions().position(gps)); 
     mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(gps, 16)); 
    } 

} 
関連する問題