마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 구글맵 마커 클릭 이벤트 질문입니다.

0 추천
현재 구글맵에  addmark를 사용하여 지정한 위도 경도에 마커는 띄어놨습니다
마커를 눌렀을때 말풍선 띄우는거 말고
클릭했을때 다른 액티비티를 띄울려고합니다
구글링해도 어찌어찌 에러잡고 돌려보면 구동이 안되고 튕겨버립니다void setOnMapClickListener (GoogleMap.OnMapClickListener listener) 
이걸 쓰면 된다고고 하셨는데 솔직히 잘 모르겠습니다
제가 적어놓은 코드도도 완벽히 이해 못했습니다
안드로이드 생초보 입니다 ㅠㅠ
코드를 다 적을려고 하니 글자수 제한이 있네요..ㅜ 쓸데없는거 지워서 올렸습니다
 
package com.example.googlemaptest;
 
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
 
import android.content.Intent;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
 
public class MainActivity extends FragmentActivity implements LocationListener{
 
private GoogleMap mmap;
private LocationManager locationManager;
private String provider;
LatLng loc = new LatLng(35.179434, 128.555509);
 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
 
GooglePlayServicesUtil.isGooglePlayServicesAvailable(MainActivity.this);
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        Criteria criteria = new Criteria();
        provider = locationManager.getBestProvider(criteria, true);
     
      if(provider==null){
      new AlertDialog.Builder(MainActivity.this)
        .setTitle("위치서비스 동의")
        .setNeutralButton("이동" ,new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
startActivityForResult(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS), 0);
}
}).setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
finish();
}
})
        .show();
    }else{   
locationManager.requestLocationUpdates(provider, 1, 1, MainActivity.this);
     setUpMapIfNeeded();
    }
Button b = (Button)findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener(){
public void onClick(View v){
Intent intent = new Intent(MainActivity.this, WIFIScanner.class);
startActivity(intent);
}
});
}
 
private void setUpMapIfNeeded() {
  if (mmap == null) {
  mmap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map )).getMap();
  mmap.addMarker(new MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.duck)).position(loc));
  if (mmap != null) {
  setUpMap();
  }
  }
  }
 
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case 0:
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
       Criteria criteria = new Criteria();
       provider = locationManager.getBestProvider(criteria, true);
       if(provider==null){
finish();
}else{ 
locationManager.requestLocationUpdates(provider, 1L, 2F, MainActivity.this);
        setUpMapIfNeeded();
}
break;
}
}
   private void setUpMap() {
       mmap.setMyLocationEnabled(true);
       mmap.getMyLocation();
   }
      boolean locationTag=true;
      @Override
      public void onLocationChanged(Location location) {
       if(locationTag){
       Log.d("myLog"  , "onLocationChanged: !!"  + "onLocationChanged!!");
           double lat =  location.getLatitude();
           double lng = location.getLongitude();
      Toast.makeText(MainActivity.this, "위도  : " + lat +  " 경도: "  + lng ,  Toast.LENGTH_SHORT).show();
           locationTag=false;
       }
 }
}
카릴리 (470 포인트) 님이 2015년 5월 13일 질문
map.setOnMarkerClickListener(new OnMarkerClickListener() {

            @Override
            public boolean onMarkerClick(Marker arg0) {
                여기에서 마커 클릭했을때 할꺼 하세요~

            }
        });

1개의 답변

0 추천
cc1232 (35,280 포인트) 님이 2015년 5월 13일 답변
...