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,更安全的形式(如果 intentFlagnull)将是:

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