0

DB から列の値を取得しています (正常に動作しています)。次に、これらの値を 'String X' に 1 つずつ入れてループします。同じループで、UI を介してユーザーから提供された値を X と比較し、この比較に基づいて x を true または false にします。しかし、x は常に true を示します! これが私のコードです:

   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));

if文の最後にcondition termination symbolなどを入れないでください。;

于 2012-10-06T05:47:40.700 に答える
0

私はこの人々を手に入れました、私は誤って「;」を入れていました 私のifステートメントの最後に。ごめん!馬鹿な!

于 2012-10-06T05:50:47.757 に答える