2013-08-02 62 views
0

我有以下問題,我添加了幾個標記,50%一個黑點和50%的紅點作爲圖標,但其中90%出現與黑點。當我按下它們並轉回來時,應該是紅色的變成紅色.WHY?android谷歌地圖標記problme

感謝

P.S.Here是代碼

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))); 
      } 

回答

2

這是因爲 「RETUR」 還包含字符串 「TUR」。因此,對於第二個if語句而言,任何真正的getRouteType字符串對於第一個也是如此。

我建議不要在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))); 
} 
+0

是的,就是這樣......我已經過了幾十次的代碼,從來沒有質疑如果。 ....謝謝....標記爲答案 – nairdat