2017-04-19 81 views
-1

我的問題的答案可能在那裏,但我不知道我正確理解這個概念。Gson異步結果,如果語句

我有一個小的JSON文件,其中只包含

{"meteo": "1"} 

我成功可以GSON閱讀並顯示它我敬酒。

但如果做基於它這樣的一個「if語句」:

if(meteoStatus == "1"){ // I know for sure it's 1 
// Do something 
} else { 
// Do something else 
} 

它總是轉到if語句的第二部分,儘管我已經做了烤麪包只是這之前告訴我1

這裏是代碼的完整部分:

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
     StrictMode.setThreadPolicy(policy); 

     String url = "http://www.boisdelacambre.be/ios/json/weather.php?key=53666d6c7b206a532d52403e414d2579"; 
     String result = getUrlContents(url); 

     gsonInstance = new Gson(); 
     meteo = new Meteo(); 
     meteo = gsonInstance.fromJson(result, meteo.getClass()); 

     String meteoStatus = meteo.getMeteo(); 


     View rootView = inflater.inflate(R.layout.fragment_meteo, container, false); 
     ImageWeather = (ImageView) rootView.findViewById(R.id.imageWeather); 
     DonnesOuRemis = (TextView) rootView.findViewById(R.id.donnesOuRemis); 

     Toast.makeText(getActivity(), meteoStatus, Toast.LENGTH_LONG).show(); 

     if(meteoStatus == "1"){ 
      // il fait beau 
      Toast.makeText(getActivity(), "Pas remis !!", Toast.LENGTH_LONG).show(); 
      ImageWeather.setImageResource(R.drawable.soleil); 
      DonnesOuRemis.setText("Donnés"); 
      DonnesOuRemis.setTextColor(Color.parseColor("#06f828")); 

     } else { 
      Toast.makeText(getActivity(), "Pourquoi remis ??", Toast.LENGTH_LONG).show(); 
      ImageWeather.setImageResource(R.drawable.pluie); 
      DonnesOuRemis.setText("Remis"); 
      DonnesOuRemis.setTextColor(Color.parseColor("#f80b27")); 
     } 

任何幫助將高度讚賞;-)

+0

嘗試'meteoStatus.equals( 「1」)' –

+0

的作品!謝謝(即使我不明白爲什麼...) –

+3

可能的重複[如何比較Java中的字符串?](http://stackoverflow.com/questions/513832/how-do-i-compare-字符串在Java) – Selvin

回答

0

是否有什麼這個字符串的JSONObject,所以首先得梅託了JSON對象的這樣

String meteoStatus; 
    try { 
     JSONObject object = new JSONObject("{\"meteo\": \"1\"}"); 
     meteoStatus = object.getString("meteo"); 

     if(meteoStatus.equals("1")){ 

     }else { 

     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
+0

這段代碼需要清理。另外,OP要求Gson,而不是org.json。 –

0

==用於布爾型,浮點和整數檢查。對於字符串比較,你應該總是使用equals運算符。

例: 如果(meteoStatus.equals( 「1」)){

}else { 

    }