2012-01-30 107 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