Android Null Check

时间:2011-05-28 05:54:51

标签: android database checkbox null equals

我有一个与数据库相关的程序。我通过使用以下命令插入一行来开始我的程序。

    long id = db.insertMajor(null, null, null, null); 

它完美无缺。我改变信息,但忽略了,因为暂时我注释掉了所有这些线。现在我想检查一下它是否为null。如果它不是我想检查一个复选框。如果它是null我想要不选中该框。到目前为止,我有这条线进行测试。

    String change = db.getMajorTitle(value).getString(1);
    if (change.equals(null)) {
    filled = false;
    }

填充的布尔值将选中是否复选框。如果数据库字段填满或不填写,我总是得到一个复选标记。怎么了?

更新: 由于没有人弄明白我会发布我的大部分代码来尝试帮助弄清楚。我还重置了我的模拟器,以确保数据损坏没有问题。

    chk1.setChecked(checker(1));
    chk2.setChecked(checker(2));
    chk3.setChecked(checker(3));
    chk4.setChecked(checker(4));
    }

    boolean checker(int value){
        DBAdapter db = new DBAdapter(this);
        boolean filled = false;
        db.open();
        for (int i = 1; i <= 4; i++) {
            String change = db.getMajorTitle(value).getString(1);
            if (change == null) {
                filled = false;
            }else{
                filled = true;
            }
        }
        db.close();
        return filled;
    }

如果有人复制了这个并且它有效,请告诉我我的模拟器或日食或其他什么可能出错。谢谢大家的支持。

FINISHED: 我注意到在程序的另一部分我将null更改为“”。我要感谢大家的正确态度,并向我展示了不同的编码方式。

3 个答案:

答案 0 :(得分:1)

if (change.equals(null)) {

如果change实例不是null,则上述条件始终会返回false。请阅读Object equality constraints了解详情。 如果您想查看null使用

if( change == null) {
  // change is null, update filled field
} else {
  // change is not null, update filled field
}
  

如果数据库字段已填满   选中此复选标记。怎么了?

我想您已将filled字段初始化为true,并且从未将其设置为false,因为您的if条件始终返回false或抛出NullPointerException

答案 1 :(得分:1)

你真的不需要if语句。

filled = (change != null);

答案 2 :(得分:0)

User ExceptionHandling机制。那你就会成功。像

try {
  if(change!=null)
  {
    //do ur work,if not null
  }
  else
  {
    // do some thing
  }
}catch(NullPointerException e)
{
  //do  ur work,if null.
}