【发布时间】:2012-10-06 05:32:20
【问题描述】:
我正在从我的数据库中获取列值(工作正常),然后在循环时将这些值一次放入“字符串 X”中。在同一个循环中,我想将用户通过 UI 提供给我的值与 X 进行比较,并基于此比较,我希望 x 为真或假。但 x 总是显示为真!这是我的代码:
private boolean fillData() {
Cursor c = DBHelper.fetchAllIDs();
// List<String> idList = new ArrayList<String>();
if (c.moveToFirst()) {
do {
String X = (c.getString(c.getColumnIndexOrThrow("IDno")));
Toast.makeText(getApplicationContext(), "" +X, Toast.LENGTH_LONG).show();
String B = null;
B = Idno.getText().toString();
if (B.equals(X));
{
Toast.makeText(getApplicationContext(), "If condition true"+B, Toast.LENGTH_LONG).show();
x=true;
}
} while (c.moveToNext());
}
return x;
}
【问题讨论】:
-
我认为你设置的 x 的默认值为 true
-
不,我一开始就声明 x 为假。
-
将 x 声明为局部变量,如果它是全局变量,它将保留其先前的值。在 x = true 之后也会中断。
-
试过了,但 x 仍然显示为真! if 条件总是被执行!
标签: java android string android-sqlite