【发布时间】:2015-08-13 10:16:12
【问题描述】:
我想检查数据库变量的值是否为 5,然后更改图像。 我在检查 if 语句之前所做的 Log.d 为我提供了值 5 和我想要检查的标题,因此数据在数据库中。但是我的 if 语句没有执行,“完成”没有记录,图像也没有改变。也许我使用错误的方式将 cursor.getString(0) 解析为 Integer? 没有记录错误。
DbHelper dbh = new DbHelper(context);
Cursor cursor = dbh.getScore(dbh);
cursor.moveToFirst();
if (cursor.moveToFirst()) {
do {
Log.d("Database", cursor.getString(0) + cursor.getString(1));
if (Integer.parseInt(cursor.getString(0))== 5 && Headline.toString().equals(cursor.getString(1))){
Log.d("Database","Done");
ImageDone.setImageResource(R.drawable.markerdone);
}
}
while(cursor.moveToNext());
}
cursor.close();
【问题讨论】:
-
什么是标题类型?你确定你比较对了吗?
-
你确定 Headline.toString().equals(cursor.getString(1) 是真的吗?
-
Headline 是一个 TextView,它是真的(在日志中可以看到“cursor.getString(1)”);”有一行 Headline 为 true 且 cursor.getString(0) 为 5...)
-
为确保 Headline 不是问题,请尝试删除等于条件并查看它是否有效。
-
谢谢!!我不知道为什么我不早点尝试这个。我也在 onCreate 中设置了 Headline ,当我检查它是否相等时,它似乎还没有设置。问题解决了!
标签: java android sqlite integer