我使用游标从数据库表中获取某个值。它从“TEXT”类型的列中获取。这个想法是列的标准值是空白的,但是当单击某个按钮时,查询将向其添加“true”。
String var = c.getString(1); //use cursor to get value
但是当我想用它来比较字符串时,f.e。
if(var.equals("true")) {
//do something crazy
}
我在数据库中没有填充任何内容的项目上收到错误。只填写实际为“true”的字段不会产生错误。我试过c.getString(1).toString();但这不是诀窍......任何想法?
答案 0 :(得分:1)
这样做:
if(var != null && !var.equals(""))
这样你就可以控制空字符串和空字符串..
答案 1 :(得分:1)
检查应该如下
if("true".equals(var)) {
这样你就不会得到NullPointerException
正如Cursor#getString Javadoc
中所述结果和当列值为空时此方法是否抛出异常或列类型不是字符串类型是实现定义的。
在检查数据库中的值之前,您应该使用Cursor#isNull或Cursor#moveToFirst。
if(!c.isNull(1))
//Get Value here
Or
if(c.moveToFirst())
//get value here
答案 2 :(得分:1)
if("true".equals(var)) {
//do something crazy
}
答案 3 :(得分:1)
您的问题不在演员表中(您应该阅读LogCat)。在获取之前,您应首先检查光标是否包含数据:
String var = "";
if (c.moveToFirst())
var = c.getString(1);
然后做你的检查。
if(var.equals("true")) { //do something crazy }
答案 4 :(得分:0)
firstly check the
if(var.trim.equals("")) {
//do your task
}