0

我有以下问题,我添加了几个标记,50% 的黑点和 50% 的红点作为图标,但其中 90% 出现了黑点。那些应该是红色的变成了当我按下它们并返回时会变红。为什么?

谢谢

PS这里是代码

mMap = mapFragment.getMap();
StationAccess stationAccess = new StationAccess(getApplicationContext());
List<Station> stationList = stationAccess.getByBusName(getTitle().toString());
if(s.getRouteType().toString().contains("TUR")){
    mMap.addMarker(new MarkerOptions().position(new LatLng(s.getLatitude(),s.getLongitude())).title(s.getRouteType().toString()).icon(BitmapDescriptorFactory.fromResource(R.drawable.punct_negru)));
            }
if(s.getRouteType().toString().contains("RETUR")){
    mMap.addMarker(new MarkerOptions().position(new LatLng(s.getLatitude(),s.getLongitude())).title(s.getRouteType().toString()).icon(BitmapDescriptorFactory.fromResource(R.drawable.punct_rosu)));
            }
4

1 回答 1

2

这是因为“RETUR”还包含字符串“TUR”。因此,对于第二个 if 语句为 true 的任何字符串 getRouteType 对于第一个也为 true。

我建议不要对 s.getRouteType() 进行字符串比较。我不熟悉你的班级结构,但如果它是一个枚举,它可能看起来像

if (s.getRouteType().equals(RouteType.*Something*)) {
    mMap.addMarker(new MarkerOptions().position(new LatLng(s.getLatitude(),s.getLongitude())).title(s.getRouteType().toString()).icon(BitmapDescriptorFactory.fromResource(R.drawable.punct_negru)));
} else if (s.getRouteType().equals(RouteType.*SomethingElse*)) {
    mMap.addMarker(new MarkerOptions().position(new LatLng(s.getLatitude(),s.getLongitude())).title(s.getRouteType().toString()).icon(BitmapDescriptorFactory.fromResource(R.drawable.punct_rosu)));
}
于 2013-08-02T16:14:07.423 回答