Androidアプリ開発についてお尋ねします。 ボタンを押して、現在地にマーカーを置くという実装を現在行っております。
Androidアプリ開発についてお尋ねします。 ボタンを押して、現在地にマーカーを置くという実装を現在行っております。 シンボルを解決出来ず、実行出来ない状態です。以下にコードを示します。 nowというプライベートフィールドを宣言していて、アクセスされないという問題と、locationを解決出来ないという問題の2点です。 解決策をご教授いただければ幸いです。宜しくお願い致します。 private GoogleMap mMap; private Marker now; // マーカー表示テスト Button MarkerTestButton = findViewById(R.id.MarkerTestButton); MarkerTestButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addMarkerTest(location);←locatonを解決出来ない } }); public void addMarkerTest(Location location) { double now_latitude = location.getLatitude(); double now_longitude = location.getLongitude(); LatLng now_latlng = new LatLng(now_latitude, now_longitude); MarkerOptions options = new MarkerOptions(); options.position(now_latlng); options.title("Test"); options.snippet("マーカーのテストです。"); BitmapDescriptor icon = BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN); options.icon(icon); now = mMap.addMarker(options); }
ベストアンサー
ソースコードが抜粋になっていてよくわかりませんが、 どこかの位置(Location)を指定して、 ボタンを押したらその位置情報にマーカーを立てる ってことがしたいのだと推測します。 だとすると、 位置を指定したとき、locationという変数名で データをメンバ変数に保持していなのでは? ボタン押下時にlocationという変数が急に出てきて、定義も何もないので「AndroidStudioはこれがなんだかわからず解決できていない」という趣旨に見えます。 まだ位置を指定する実装ができておらず、 とりあえずマーカが追加される動作を確認したいだけ というのであれば 以下みたいに、LocationをonClick内で適当に定義してあげればよいです。 @Override public void onClick(View v) { // とりあえず大阪城の座標で作る Location location = new Location(""); location.setLatitude(34.686785); location.setLongitude(135.525935); addMarkerTest(location);←これでlocatonを解決できるはず } }); >nowというプライベートフィールドを宣言していて こちらの質問も抜粋コードではよくわかりませんが、 「変数nowを使っていない」という趣旨の黄色線が出てますか? 黄色線なら無視してもコンパイルエラーにならないので良いです。 対処したいなら、nowの定義を消しましょう。 「変数nowへ代入できない」という趣旨の赤色線が出てますか? メッセージ内容から、アクセス修飾子の問題?に思うので「private」を「public」に変更してみましょう
質問者からのお礼コメント
いつも丁寧なご回答、ありがとうございます。
お礼日時:1/5 22:38