我的问题的答案可能就在那里,但我不确定我是否正确理解这个概念。
我有一个小的Json文件,只包含
{"meteo": "1"}
我可以用Gson成功阅读它并向我展示一个Toast。
但是如果像这样做一个基于它的“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 :(得分: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();
}
答案 1 :(得分:0)
==用于布尔,浮点和整数检查。对于字符串比较,你应该总是使用equals运算符。
例: 如果(meteoStatus.equals( “1”)){
}else {
}