if (keyWord != null) { // 使用Stream API过滤并删除包含关键字的数据 boolean removed = routeList.removeIf(node -> node.get(0).getName().contains(keyWord)); // 如果没有数据被删除,则提示 if (!removed) { speakWithoutFollowStep("抱歉,当前没有" + keyWord + "途经点"); } List<BNRoutePlanNode> list = new ArrayList<>(); for (List<BNRoutePlanNode> ed : routeList) { list.add(ed.get(0)); } BaiduNaviManagerFactory.getRouteGuideManager().deleteViaNodes(); android.util.Log.d("TAGAA", "deleteWayPoint: 数据是"+routeList.toString()); try { Thread.sleep(1700); BaiduNaviManagerFactory.getRouteGuideManager().addViaNodes(list); BaiduNaviManagerFactory.getCommonSettingManager().setViaPointCount(4); showFullView(); isWayPoint = true; android.util.Log.d("TAGAA", "deleteWayPoint: 删除后 数据是"+list.toString()); } catch (InterruptedException e) { e.printStackTrace(); } } else { BaiduNaviManagerFactory.getRouteGuideManager().deleteViaNodes(); showFullView(); routeList.clear(); isWayPoint = true; android.util.Log.d("TAGAA", "deleteWayPoint: 删除完了 "+routeList.toString()); } 以上代码用来删除途经点和删除某个途经点,代码写的有没有问题
时间: 2024-02-15 15:28:28 浏览: 65
Java if(boolean)和if(boolean=true)区别解析
根据代码的逻辑,删除途经点的代码看起来是正确的。如果keyWord不为null,就会使用Stream API过滤并删除包含关键字的数据,如果没有数据被删除,则会提示没有相关的途经点。然后将剩余的途经点节点添加到list中,再通过BaiduNaviManagerFactory.getRouteGuideManager()的addViaNodes()方法将它们添加到导航管理器中。如果keyWord为null,则表示需要删除所有的途经点,这时会直接通过BaiduNaviManagerFactory.getRouteGuideManager()的deleteViaNodes()方法删除所有的途经点。但是,需要根据具体的应用场景来确定代码的正确性。
阅读全文