Kullanıcı haritaya tıkladığında işaretçi koymaya çalışıyorum. ActionBarActivity
'un içinde bir SupportMapFragment
kullanıyorum. Ancak harita yanıt vermiyor, ayrıca map.setMapType()
işlemi çalışmıyor.Android Google Maps v2: click dinleyici yanıt vermiyor
İşte benim kod:
private GoogleMap map;
private Marker marker;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
ActionBarActivity activity = (ActionBarActivity) getActivity();
activity.getSupportActionBar().setTitle(R.string.select_location);
super.onCreateView(inflater, container, savedInstanceState);
return inflater.inflate(R.layout.map, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
Log.d("Map","On view created");
map = getMap();
map.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
map.setOnMapClickListener(new OnMapClickListener() {
@Override
public void onMapClick(LatLng point) {
Log.d("Map","Map clicked");
marker.remove();
drawMarker(point);
}
});
...
Location location = locationManager.getLastKnownLocation(provider);
if(location!=null){
//PLACE THE INITIAL MARKER
drawMarker(new LatLng(location.getLatitude(),location.getLongitude()));
}
}
Logcat "görünüm oluşturulmuş" iletisini gösteriyor ve harita bir işaretleyici ile mevcut konumu gösterir, bu nedenle kodunun son bölümü yürütülmektedir. Ancak, onMapClickListener
geçersiz kılınmış ya da bir şey çalışmıyor çünkü çalışmaz ve harita uydu değildir.
Herkes bana yardım edebilir mi? Bunun yerine harita yapmanın
Teşekkürler josuadas! Asıl nokta, bir XML'i şişirmem gerektiğidir, çünkü bu sadece bir harita ile değil. SupportMapFragment'i genişletmenin hala gerekli olduğunu düşünüyorum, değil mi? –
Ez horregatik! Benim düşünceme göre bu durumda SupportMapFragment'i genişletmemelisiniz, sadece Fragment (destek kütüphanesinden). Bu bağlantıya bakın: http://stackoverflow.com/questions/13804511/supportmapfragment-with-a-custom-layout-possible – josuadas
Başka bir olasılık da, SupportMapFragment'i haritaya yer açmak için bir FragmentActivity'e eklemektir. A.G. FragmentActivity düzeninizde kapsayıcı olarak bir FrameLayout kullanarak: http://developer.android.com/training/basics/fragments/fragment-ui.html#AddAtRuntime – josuadas