Android空校验器
我有一个与数据库相关的程序。我通过使用以下命令插入一行来启动程序Android空校验器,android,database,checkbox,null,equals,Android,Database,Checkbox,Null,Equals,我有一个与数据库相关的程序。我通过使用以下命令插入一行来启动程序 long id = db.insertMajor(null, null, null, null); 它工作得很好。我不想更改信息,但让我们忽略这一点,因为目前我已注释掉了所有这些行。现在我想检查它是否为null,应该为null。如果它不是空的,我想勾选一个复选框。如果为空,则我希望不选中该框。到目前为止,我有这条线要测试 String change = db.getMajorTitle(value).getSt
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;
}
chk1.setChecked(checker(1));
chk2.设置检查(检查(2));
chk3.setChecked(检查者(3));
chk4.设置检查(检查(4));
}
布尔检查器(int值){
DBAdapter db=新的DBAdapter(此);
布尔填充=假;
db.open();
对于(inti=1;i用户异常处理机制。那么您将成功。如
try {
if(change!=null)
{
//do ur work,if not null
}
else
{
// do some thing
}
}catch(NullPointerException e)
{
//do ur work,if null.
}
如果change
实例不是null
,则上述条件始终返回false
。有关详细信息,请阅读。
如果要检查null
值,请使用
if( change == null) {
// change is null, update filled field
} else {
// change is not null, update filled field
}
数据库字段是否已填充
我总是打勾,怎么了
我想您应该将填充的字段初始化为true
,而从不将其设置为false
,因为if
条件总是返回false
或抛出NullPointerException,您真的不需要if语句
filled = (change != null);
db是什么类?你给我们展示了你自己的API吗?谁知道里面发生了什么?你得到了异常吗?change.equals(null)
更改为null时应引发异常,因为您无法调用null对象的成员。请改为尝试更改==null
。尝试此操作后,它仍会检查所有对象。这意味着(1)用于设置复选框的代码未正确运行(易于测试,只需将硬代码填充为false
,看看会发生什么),或者(2)数据库没有返回null
(同样易于测试,将更改
输出到日志中,看看是什么)。感谢您的回复。我知道复选框的代码运行正确,所以我将尝试选项2。如何输出到日志?使用log
类的函数。在线上有很多关于如何使用它的示例,例如,如果您使用的是Eclipse。我也尝试了此方法。它仍然会检查所有这些示例。这没有检查错误他们中的任何一个
filled = (change != null);