我正在編寫一個Android應用程序,用於顯示我們電話線路狀態的工作,但那不是在這裏或那裏。ANDROID:If ...否則作爲開關字符串
我打電話給我們的服務器之一,並獲得狀態的返回JSON文本。然後我解析這個把每行放到一個SortedMap(TreeMap)中,Key是行的名字,我自己的類是值(它保存狀態和其他細節)。
這一切工作正常。
當應用程序運行時,它應該顯示每一行和我檢索的信息,但沒有更新。
JSON返回並正確添加到地圖。
這是不工作的代碼的快照。我只是遍歷地圖,並根據鍵的值更新相關的TextView。我遇到的問題是,當它到達匹配它的IF語句時,它永遠不會運行該代碼。它跳過它,就好像值不匹配一樣。
我看不到任何錯誤。這是唯一的方法來做到這一點,因爲我知道你不能使用Switch..Case等?
任何人都可以看到我的錯誤?我已經在Android上編了一個星期了,所以它可能是一個新手錯誤!
感謝 尼爾
Iterator iterator = mapLines.entrySet().iterator();
while(iterator.hasNext())
{
// key=value separator this by Map.Entry to get key and value
Map.Entry<String, Status> mapEntry = (Map.Entry<String, Status>)iterator.next();
// getKey is used to get key of Map
String key = (String)mapEntry.getKey();
// getValue is used to get value of key in Map
Status value = (Status)mapEntry.getValue();
if(key == "Ski")
{
TextView tvStatus = (TextView)findViewById(R.id.SkiStatus);
tvStatus.setText(value.Status);
}
else if(key == "Cruise")
{
TextView tvStatus = (TextView)findViewById(R.id.CruiseStatus);
tvStatus.setText(value.Status);
}
else if(key == "Villas")
{
TextView tvStatus = (TextView)findViewById(R.id.VillasStatus);
tvStatus.setText(value.Status);
}
}
@neildeadman - 嚴格使用Joachims的第二種模式。你必須使用不同的一天,你會知道爲什麼。但是在接下來的幾年裏不會發生這種情況;-) – 2010-09-29 09:30:34