OnInfoClick 不起作用
OnInfoClick Doesn't Work
我有一个程序想要将我定向到位置评论页面,用户可以在该页面上阅读有关他点击的特定位置的所有信息。
我尝试用下面的代码实现它:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_places_near_me);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
progressDialog = new ProgressDialog(PlacesNearMeActivity.this);
mMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
Intent intent = new Intent(PlacesNearMeActivity.this, ReviewActivity.class);
startActivity(intent);
}
});
} // #EndOfOnCreate!
使用
在 google 地图上显示标记
public void markPlaces(String result, GoogleMap mMap) {
try {
final JSONObject json = new JSONObject(result);
JSONArray resultArray = json.getJSONArray("results");
for ( int z=0; z<resultArray.length(); ++z ) {
JSONObject locObj = resultArray.getJSONObject(z);
JSONObject geometry = locObj.getJSONObject("geometry");
JSONObject location = geometry.getJSONObject("location");
Double lat = Double.parseDouble(location.getString("lat"));
Double lng = Double.parseDouble(location.getString("lng"));
String name = locObj.getString("name");
String placeId = locObj.getString("place_id");
mMap.addMarker(new MarkerOptions().position(new LatLng(lat, lng)).title(name)
.snippet(placeId));
}
}
catch (JSONException e) { }
} // #EndOfmarkMarkers!
问题是没有任何反应,我尝试使用 implements 方法和 onMarkerClickListener 来实现它。有什么解决方案吗?
如果你使用getMapAsync()
(你应该!),地图的所有地图配置都需要放入onMapReady()
。在那之前,您没有要配置的地图。这包括为信息 window 或标记点击等事件设置侦听器。
我有一个程序想要将我定向到位置评论页面,用户可以在该页面上阅读有关他点击的特定位置的所有信息。
我尝试用下面的代码实现它:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_places_near_me);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
progressDialog = new ProgressDialog(PlacesNearMeActivity.this);
mMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
Intent intent = new Intent(PlacesNearMeActivity.this, ReviewActivity.class);
startActivity(intent);
}
});
} // #EndOfOnCreate!
使用
在 google 地图上显示标记public void markPlaces(String result, GoogleMap mMap) {
try {
final JSONObject json = new JSONObject(result);
JSONArray resultArray = json.getJSONArray("results");
for ( int z=0; z<resultArray.length(); ++z ) {
JSONObject locObj = resultArray.getJSONObject(z);
JSONObject geometry = locObj.getJSONObject("geometry");
JSONObject location = geometry.getJSONObject("location");
Double lat = Double.parseDouble(location.getString("lat"));
Double lng = Double.parseDouble(location.getString("lng"));
String name = locObj.getString("name");
String placeId = locObj.getString("place_id");
mMap.addMarker(new MarkerOptions().position(new LatLng(lat, lng)).title(name)
.snippet(placeId));
}
}
catch (JSONException e) { }
} // #EndOfmarkMarkers!
问题是没有任何反应,我尝试使用 implements 方法和 onMarkerClickListener 来实现它。有什么解决方案吗?
如果你使用getMapAsync()
(你应该!),地图的所有地图配置都需要放入onMapReady()
。在那之前,您没有要配置的地图。这包括为信息 window 或标记点击等事件设置侦听器。