CheckBox .isChecked() 不访问代码
CheckBox .isChecked() not accessing code
我正在使用 activity 上的复选框来确定需要将对象添加到哪个列表。
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")){
....
或者为了避免潜在的 NullPointerException,更安全的形式(如果 intentFlag
是 null
)将是:
if(listFlag.isChecked() && "main".equals(intentFlag)){
...
我正在使用 activity 上的复选框来确定需要将对象添加到哪个列表。
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")){
....
或者为了避免潜在的 NullPointerException,更安全的形式(如果 intentFlag
是 null
)将是:
if(listFlag.isChecked() && "main".equals(intentFlag)){
...