我正在开发一款使用谷歌 map Android API的Android应用程序,但我在清除 map 上的折线时遇到了麻烦.我已经实现了在对话框中添加多段线,并且我想在按下"Clear"按钮时删除当前显示的多段线.但是,该多段线未按预期删除.
Problem Description:个
我有一个对话框,当 Select 了特定的路由时,它会显示带有折线的Google map .以下是代码 struct 的概述:
我在 map 上创建并显示一个带有所选路由的折线的对话框. 我在对话框中有一个"Clear"按钮(ClearRouteBtn),它应该会从 map 上删除显示的折线. 我正在使用的多段线
Issue:个
问题是,当我单击"Clear"按钮时,即使我使用的是PolylineView.Remove();,它也不会从 map 中删除折线.日志(log)消息指示多段线已删除,但它在 map 上仍然可见.
What I've Tried:个
我try 添加日志(log)消息以验证PolylineView不为空. 我还确保正确设置了该按钮的点击监听器. 预期行为:
当我点击"Clear"按钮时,我希望当前显示的折线将从 map 中删除.
Actual Behavior:个
当点击"清除"按钮时,多段线不会从 map 中删除.
Additional Information:个
该应用程序使用Google Maps Android API. 使用PolylineView = mMap.addPolyline(polylineOptions);添加折线. "清除"按钮的可见性最初设置为不可见
Any suggestions or insights on how to resolve this issue would be greatly appreciated.个
public Polyline currentPolyline;
public Polyline PolylineView;
这是第二条折线所在的位置,也是我的清除按钮
Button buttonOkay = dialogView.findViewById(R.id.button);
buttonOkay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for (AlertDialog openDialog : openDialogs) {
if ("RouteForBalibagoHighway".equals(customRouteLabel)) {
// Handle "Okay" button click for RouteForBalibagoHighway
PolylineOptions polylineOptions = new PolylineOptions()
.addAll(customRouteForBalibagoHighway)
.width(8)
.color(jeep_grey);
PolylineView = mMap.addPolyline(polylineOptions);
Log.d("Debug", "PolylineView: " + PolylineView);
} else if ("RouteForBalibagoHolyHighway".equals(customRouteLabel)) {
// Handle "Okay" button click for RouteForBalibagoHolyHighway
PolylineOptions polylineOptions = new PolylineOptions()
.addAll(customRouteForBalibagoHolyHighway)
.width(8)
.color(jeep_purple);
PolylineView = mMap.addPolyline(polylineOptions);
Log.d("Debug", "PolylineView: " + PolylineView);
} else if ("RouteForVillaPampang".equals(customRouteLabel)) {
// Handle "Okay" button click for RouteForVillaPampang
PolylineOptions polylineOptions = new PolylineOptions()
.addAll(customRouteForVillaPampang)
.width(8)
.color(jeep_yellow);
PolylineView = mMap.addPolyline(polylineOptions);
Log.d("Debug", "PolylineView: " + PolylineView);
} else if ("RouteForSapangBato".equals(customRouteLabel)) {
// Handle "Okay" button click for RouteForVillaPampang
PolylineOptions polylineOptions = new PolylineOptions()
.addAll(customRouteForSapangBato)
.width(8)
.color(Color.RED);
PolylineView = mMap.addPolyline(polylineOptions);
Log.d("Debug", "PolylineView: " + PolylineView);
}else if ("RouteForPandan".equals(customRouteLabel)) {
// Handle "Okay" button click for RouteForVillaPampang
PolylineOptions polylineOptions = new PolylineOptions()
.addAll(customRouteForPandan)
.width(8)
.color(Color.BLUE);
PolylineView = mMap.addPolyline(polylineOptions);
Log.d("Debug", "PolylineView: " + PolylineView);
}else if ("RouteForMaingate".equals(customRouteLabel)) {
// Handle "Okay" button click for RouteForVillaPampang
PolylineOptions polylineOptions = new PolylineOptions()
.addAll(customRouteForMaingate)
.width(8)
.color(jeep_brown);
PolylineView = mMap.addPolyline(polylineOptions);
}else if ("RouteForSunset".equals(customRouteLabel)) {
// Handle "Okay" button click for RouteForVillaPampang
PolylineOptions polylineOptions = new PolylineOptions()
.addAll(customRouteForSunset)
.width(8)
.color(jeep_orange);
PolylineView = mMap.addPolyline(polylineOptions);
Log.d("Debug", "PolylineView: " + PolylineView);
}else if ("RouteForHenson".equals(customRouteLabel)) {
// Handle "Okay" button click for RouteForVillaPampang
PolylineOptions polylineOptions = new PolylineOptions()
.addAll(customRouteForHenson)
.width(8)
.color(jeep_white);
PolylineView = mMap.addPolyline(polylineOptions);
Log.d("Debug", "PolylineView: " + PolylineView);
}else if ("RouteForMarisolPampang".equals(customRouteLabel)) {
// Handle "Okay" button click for RouteForVillaPampang
PolylineOptions polylineOptions = new PolylineOptions()
.addAll(customRouteForMarisolPampang)
.width(8)
.color(Color.GREEN);
PolylineView = mMap.addPolyline(polylineOptions);
Log.d("Debug", "PolylineView: " + PolylineView);
}else if ("RouteForCapaya".equals(customRouteLabel)) {
// Handle "Okay" button click for RouteForVillaPampang
PolylineOptions polylineOptions = new PolylineOptions()
.addAll(customRouteForCapaya)
.width(8)
.color(jeep_pink);
PolylineView = mMap.addPolyline(polylineOptions);
Log.d("Debug", "PolylineView: " + PolylineView);
}
// THIS IS WHERE I PUT MY CLEAR BUTTON
clearRouteBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (PolylineView != null) {
PolylineView.remove();
Log.d("Debug", "Removed: " + PolylineView);
} else {
// Handle the case where the polyline couldn't be added
}
}
});
// After adding the polyline, make the clear button visible
clearRouteBtn.setVisibility(View.VISIBLE);
discountApplied = false; // Mark the discount as applied
openDialog.dismiss();
}
}
});
} else {
Log.e(TAG, "No layout resource found for custom route: " + customRouteLabel);
}
}