我使用游标从数据库表中获取某个值。它从类型为"TEXT"的列中获取它。这个想法是列的标准值为空,但是当单击某个按钮时,查询将向其添加"true"。
String var = c.getString(1); //use cursor to get value
但是当我想使用它来与字符串进行比较时,例如
if(var.equals("true")) {
//do something crazy
}
我在数据库中没有填写任何内容的项目上收到错误。只有实际填写"true"的字段不会给出错误。我尝试了 c.getString(1).toString();但这并不能解决问题...有什么想法吗?
检查应如下所示
if("true".equals(var)) {
这样你就不会得到NullPointerException
如 Cursor#getString Javadoc 中所建议
的结果以及此方法在列值为 null 或列类型不是字符串类型时是否引发异常是实现定义的。
在检查数据库中的值之前,您应该使用 Cursor#isNull 或 Cursor#moveToFirst。
if(!c.isNull(1))
//Get Value here
Or
if(c.moveToFirst())
//get value here
:
if(var != null && !var.equals(""))
这样,您就可以控制空字符串和空字符串。
if("true".equals(var)) {
//do something crazy
}
你的问题不在于转换(你应该阅读 LogCat)。在读取游标之前,应首先检查游标是否包含数据:
String var = "";
if (c.moveToFirst())
var = c.getString(1);
然后进行检查。
if(var.equals("true")) { //do something crazy }
firstly check the
if(var.trim.equals("")) {
//do your task
}