Android CheckBox.isChecked()不访问代码

Android CheckBox.isChecked()不访问代码,android,android-intent,android-checkbox,Android,Android Intent,Android Checkbox,我在活动上使用复选框来确定哪些列表需要将对象添加到其中 Intent i = getIntent(); String intentFlag = i.getStringExtra("flag"); if(listFlag.isChecked() && intentFlag == "main"){ newProduct.put("shoppingList", true); newProduct.put("mainList", true); } else if (li

我在活动上使用复选框来确定哪些列表需要将对象添加到其中

Intent i = getIntent();
String intentFlag = i.getStringExtra("flag");

if(listFlag.isChecked() && intentFlag == "main"){
    newProduct.put("shoppingList", true);
    newProduct.put("mainList", true);
} else if (listFlag.isChecked() && intentFlag == "shoppingList"){
    newProduct.put("mainList", true);
    newProduct.put("shoppingList", true);
} else if (!listFlag.isChecked() && intentFlag == "main"){
    newProduct.put("mainList", true);
    newProduct.put("shoppingList", false);
} else if (!listFlag.isChecked() && intentFlag == "shoppingList"){
    newProduct.put("mainList", false);
    newProduct.put("shoppingList", true);
}
目前,可以从
Intent
返回的唯一
intentFlag
“main”
,但是,从未到达IF语句中的代码。查看调试,它返回“main”


我是否做了一些明显错误的事情?

在Java中,应该使用
equals()
,而不是
=
来比较字符串。因此,它应该是:

if(listFlag.isChecked() && intentFlag.equals("main")){
   ....
或者为了避免潜在的危险,更安全的形式(如果
intentFlag
null
)是:

if(listFlag.isChecked() && "main".equals(intentFlag)){
   ...

在Java中,应该使用
equals()
,而不是
=
来比较字符串。因此,它应该是:

if(listFlag.isChecked() && intentFlag.equals("main")){
   ....
或者为了避免潜在的危险,更安全的形式(如果
intentFlag
null
)是:

if(listFlag.isChecked() && "main".equals(intentFlag)){
   ...

我真是个白痴。这是漫长的一天。谢谢你的帮助,我会接受你的回答,因为这让我很傻。这是漫长的一天。谢谢你的帮助,当它允许我的时候,我会接受你的回答