2012-01-30 99 views
-2

我有一個奇怪的問題。我的應用程序有多個活動,一個活動是設置兩個複選框spinners和保存按鈕。Androids複選框不檢查

當它第一次啓動,安裝後我按一下按鈕,彈出設置和設置活動是這本上創建:

final CheckBox checkBox1st = (CheckBox) findViewById(R.id.checkBox1st); 
    final CheckBox checkBox2nd = (CheckBox) findViewById(R.id.checkBox2nd); 

    // set checkers from sharesetting 

    String XX = GetPreference("lajna", "1"); 

    if (XX == "1") { 
     checkBox1st.setChecked(true); 
     checkBox2nd.setChecked(false); 
     //updatneme spiner s menami podla lajn 
     db.openToRead(); 
     updateSpiner("1"); //update appropriate spinner 
     db.close(); 
    } 
    if (XX == "2") { 
     checkBox1st.setChecked(false); 
     checkBox2nd.setChecked(true); 
     //updatneme spiner s menami podla lajny 
     db.openToRead(); 
     updateSpiner("2"); //update appropriate spinner 
     db.close(); 
    } 

所以這點是讀取共享設置,並設置複選框爲集...但它一開始並沒有這樣做,並且共享偏好值被設置了。即使它不是它仍然應該與值1一起去嗎?但它不檢查任何檢查..

如果我保存設置或使用返回按鈕,比去再設置顯示正常......

任何想法,爲什麼它是這樣的表現?

謝謝, 維拉德

回答

2

「1」 .equals(XX),字符串比較應該使用等於==。

+0

將嘗試,並報告回 – VladoPortos 2012-01-30 20:25:11

+0

偉大的工作!非常奇怪,我要谷歌什麼是差異,因爲在我的腦海中它是完全相同的功能。無論如何,非常感謝我將從現在開始使用字符串等於。 – VladoPortos 2012-01-30 20:41:29

+0

檢查此討論http://stackoverflow.com/questions/594604/string-equality-vs-equality-of-location – kosa 2012-01-30 20:44:14