1

我使用光标从数据库表中获取某个值。它从类型为“TEXT”的列中取出。这个想法是该列的标准值是空白的,但是当单击某个按钮时,查询会为其添加“true”。

String var = c.getString(1); //use cursor to get value

但是当我想用它来比较一个字符串时,fe

if(var.equals("true")) {
//do something crazy
}

我在数据库中没有填写任何内容的项目上收到错误消息。只有实际填写“true”的字段不会出错。我试过 c.getString(1).toString(); 但这并不能解决问题……有什么想法吗?

4

5 回答 5

1

这样做:

if(var != null && !var.equals(""))

这样你就可以同时控制空字符串和空字符串..

于 2012-09-24T13:25:02.767 回答
1

检查应该如下所示

if("true".equals(var)) {

这样你就不会得到NullPointerException

正如Cursor#getString Javadoc中所建议的那样

当列值为 null或列类型不是字符串类型时,结果以及此方法是否引发异常是实现定义的。

在检查数据库中的值之前,您应该使用Cursor#isNullCursor#moveToFirst 。

 if(!c.isNull(1))
 //Get Value here

Or 

if(c.moveToFirst())
 //get value here
于 2012-09-24T13:25:53.160 回答
1
if("true".equals(var)) {
  //do something crazy
}
于 2012-09-24T13:26:32.950 回答
1

您的问题不在于选角(您应该阅读 LogCat)。您应该首先检查游标是否包含数据,然后再获取它:

String var = "";    
if (c.moveToFirst())
var = c.getString(1);

然后做你的检查。

if(var.equals("true")) { //do something crazy } 
于 2012-09-24T13:27:26.413 回答
0
 firstly check the 
 if(var.trim.equals("")) {
    //do your task
 }
于 2012-09-24T13:28:04.813 回答