CheckBox .isChecked()无法访问代码

时间:2015-08-12 21:45:09

标签: 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 (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"

我做错了什么?

1 个答案:

答案 0 :(得分:4)

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

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

或为了避免潜在的NullPointerException,更安全的表单(如果intentFlagnull)将是:

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