【发布时间】:2015-10-24 08:19:16
【问题描述】:
单击 infoWindow 时,每次单击都会传递相同的“currentStall”。 它必须只创建一个单击侦听器实例。 'currentStall' 将唯一标识符传递给单击的位置,但仅传递数组中的最后一个标识符,而不传递每个单独的标识符。
Iterator<Stall> iter = stalls.listIterator();
while (iter.hasNext()) {
final Stall currentStall = iter.next();
String stallId = currentStall.getId().get$Oid();
Double x = currentStall.getLocation().getCoordinates().get(0);
Double y = currentStall.getLocation().getCoordinates().get(1);
final String myName = currentStall.getName();
addCircle(new LatLng(y, x), currentStall.getRadius(), 0);
LatLng CIU = new LatLng(y, x);
Marker cmumarker;
cmumarker = mMap.addMarker(new MarkerOptions()
.position(CIU)
.title(myName)
.flat(true)
.snippet(currentStall.getId().get$Oid()));
cmumarker.showInfoWindow();
mMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener(){
@Override
public void onInfoWindowClick(Marker cmumarker){
//Intent intent = new Intent(MainActivity.this,AdminActivity.class);
//startActivity(intent);
Intent intent = new Intent("life.stall.StallBox");
startActivity(intent);
App appState = ((App) getApplicationContext());
appState.setCurStall(currentStall);
Toast.makeText(getApplicationContext(), myName, Toast.LENGTH_LONG).show();
}
});
}
【问题讨论】:
标签: java android google-maps loops android-studio