我在活动上使用复选框来确定列表需要添加对象的内容。
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);
}
目前,intentFlag
唯一可以返回的Intent
是"main"
,但永远不会到达IF语句中的代码。看看Debug,它正在返回" main"
我做错了什么?
答案 0 :(得分:4)
在Java中,您应该使用equals()
而不是==
来比较字符串。所以它应该是:
if(listFlag.isChecked() && intentFlag.equals("main")){
....
或为了避免潜在的NullPointerException,更安全的表单(如果intentFlag
为null
)将是:
if(listFlag.isChecked() && "main".equals(intentFlag)){
...