0

我正在从我的数据库中获取列值(工作正常),然后在循环时将这些值一次放入“字符串 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;
  }
4

2 回答 2

0

尝试打印的值

String X = (c.getString(c.getColumnIndexOrThrow("IDno")));

例如 Sop(x) 或内部日志。

并以同样的方式打印

 B = Idno.getText().toString();

Sop(B) 或内部日志(B)。

它可能在含义上相同但在现在时不同(区分大小写)。

采用

if(B.equalsIgnoreCase(X))
{
}

代替if (B.equals(X));

不要将condition termination symbol诸如放在;if 语句的末尾。

于 2012-10-06T05:47:40.700 回答
0

我得到了这个伙计们,我错误地放了一个';' 在我的 if 语句的末尾。对不起!愚蠢的!

于 2012-10-06T05:50:47.757 回答