CheckBox . ischecked()无法访问代码



我在一个活动上使用一个复选框来确定什么列表需要有对象添加到它。

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语句中的代码永远不会到达。看看Debug,它返回"main"

我做了什么明显的错误吗?

在Java中,您应该使用equals()而不是==来比较字符串。所以应该是:

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

或避免潜在的NullPointerException,更安全的形式(在intentFlagnull的情况下)将是:

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

最新更新