2015-01-21 47 views
0

我想從mysql獲取
數據的結果時在循環中有一個if else語句..但是if語句無法讀取結果..但代碼完美
我看到這個問題在我的情況下。無法從MYSQL讀取字符串結果

這裏是我的代碼從我的AsyncTask

for (int i = 0; i < markers.length(); i++) { 

        JSONObject c = markers.getJSONObject(i); 

        // Storing each json item in variable 
        Double LAT = c.getDouble(TAG_LAT); 
        Double LNG = c.getDouble(TAG_LNG); 
        String color = c.getString(TAG_STATUS); 

        String red = "ongoing"; 
        String green = "firedout"; 

        if (color == red){ 
        LatLng position = new LatLng(LAT, LNG); 
        status.add(new MarkerOptions() 
        .title(color) 
        .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED)) 
        .position(position)); 
        // adding HashList to ArrayList 
        } 

        if (color == green){ 
         LatLng position = new LatLng(LAT, LNG); 
         status.add(new MarkerOptions() 
         .title(color) 
         .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)) 
         .position(position)); 
         // adding HashList to ArrayList 
         } 

       } 
+0

我覺得你如果要是(顏色==「綠色」) – Joseph 2015-01-21 04:40:09

+0

我認爲,這樣一個條件小姐something.do一些像這樣的事情..當我刪除if語句..我的標題正在獲得狀態..和標記被添加到他們相應的標題的地圖 – 2015-01-21 04:42:10

+0

沒有它不起作用..存儲在我的數據庫中的數據基本上是「正在進行」和「開除」只有..所以如果結果正在進行中,標記的顏色必須是紅色,如果結果被觸發,它必須是綠色的。 – 2015-01-21 04:54:21

回答

0

等效String值不能保證在Java中是獨一無二的。換句話說,可以有兩個具有完全相同值的String對象。

String s1 = "ongoing"; 
String s2 = new String(s1); 
System.out.println(s1 == s2); // false! 
System.out.println(s1.equals(s2)); // true :) 

因此,你必須說:

if (red.equals(color)) { 
    // do something 
} 
+0

NICE完美!謝謝你,先生! :D – 2015-01-21 05:09:11

+0

不客氣:) – gknicker 2015-01-21 05:25:39