1

まだこのすべてのコツをつかんでいます。

私の質問はこれです-私は単一のテーブルの下のデータベースでスコアを収集したい単一の列を持っています:

23
45
84
56

それらを全部集めて足し合わせたいです。

私はこれを試しました:

String[] projection2 = {BorrowMeTable.COLUMN_CREDIT_SCORE };
Cursor databaseCursor2 = getContentResolver().query(uri, projection2,
        null, null, null);
int number = 0;
if (databaseCursor2 != null) {
    while (databaseCursor2.isAfterLast() == false) {
        databaseCursor2.moveToFirst();
        number = number + databaseCursor2.getInt(databaseCursor2
                .getColumnIndexOrThrow(BorrowMeTable.COLUMN_CREDIT_SCORE));
    }
}

しかし、それはアプリをクラッシュさせるだけです。なぜこうなった?

4

1 に答える 1

0

ここには無限のループがあります:

while (databaseCursor2.isAfterLast() == false){
    databaseCursor2.moveToFirst();
    ...
}

カーソルの次の行に移動することはありません。通常、私は代わりに次のようなものを使用します。

while(cursor.moveToNext()) {
    // do cursor stuff
    ....
}
于 2013-03-04T01:57:16.440 に答える