我想在特定折线坐标上显示Toast,例如,在此代码中我想在特定折线上显示Toast,但是,发生的是onPolylineClick Toast显示程序最后读取的数据,在这种情况下,'polylineClicker2()'。
折线放在我给出的各自坐标上,只有吐司正在执行程序最后读取的内容。
public void polylineClicker() {
LatLng postition1 = new LatLng(14.601796, 121.006707);
LatLng postition2 = new LatLng(14.601033, 120.998558);
PolylineOptions popOption = new PolylineOptions()
.add(postition1).add(postition2).width(5).color(Color.YELLOW).clickable(true);
map.addPolyline(popOption);
map.setOnPolylineClickListener(new GoogleMap.OnPolylineClickListener() {
@Override
public void onPolylineClick(Polyline polyline) {
Toast.makeText(MainActivity.this, "Polyline near friends' house", Toast.LENGTH_SHORT).show();
}
});
}
public void polylineClicker2() {
LatLng position1 = new LatLng(14.617106, 120.989924);
LatLng position2 = new LatLng(14.616068, 120.990939);
PolylineOptions popOption = new PolylineOptions()
.add(position1).add(position2).width(5).color(Color.YELLOW).clickable(true);
map.addPolyline(popOption);
map.setOnPolylineClickListener(new GoogleMap.OnPolylineClickListener() {
@Override
public void onPolylineClick(Polyline polyline) {
Toast.makeText(MainActivity.this, "Polyline near my house", Toast.LENGTH_SHORT).show();
}
});
}
您在GoogleMap.OnPolylineClickListener
上设置的polylineClicker2
将覆盖您在polylineClicker
上设置的那个(假设您在polylineClicker
之前调用polylineClicker2
)。
您只需要创建一个GoogleMap.OnPolylineClickListener
,并且因为您需要不同的行为(不同的消息),您可以使用标签。使用你的代码:
public void polylineClicker() {
LatLng position1 = new LatLng(14.601796, 121.006707);
LatLng position2 = new LatLng(14.601033, 120.998558);
PolylineOptions popOption = new PolylineOptions()
.add(position1).add(position2).width(5).color(Color.YELLOW).clickable(true);
map.addPolyline(popOption).setTag("Polyline near friends' house");
}
public void polylineClicker2() {
LatLng position1 = new LatLng(14.617106, 120.989924);
LatLng position2 = new LatLng(14.616068, 120.990939);
PolylineOptions popOption = new PolylineOptions()
.add(position1).add(position2).width(5).color(Color.YELLOW).clickable(true);
map.addPolyline(popOption).setTag("Polyline near my house");
}
并且在调用GoogleMap.OnPolylineClickListener
和onMapReady
之前,将polylineClicker
设置在您需要的任何地方,例如在您的polylineClicker2
上:
map.setOnPolylineClickListener(new GoogleMap.OnPolylineClickListener() {
@Override
public void onPolylineClick(Polyline polyline) {
Toast.makeText(MainActivity.this, (String) polyline.getTag(), Toast.LENGTH_SHORT).show();
}
});