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)){
...
我真是个白痴。这是漫长的一天。谢谢你的帮助,我会接受你的回答,因为这让我很傻。这是漫长的一天。谢谢你的帮助,当它允许我的时候,我会接受你的回答