1

カーソルローダーからのカーソルがあります。問題は、そのカーソルを移動しようとすると、前方に移動せず、無限ループに陥ることです。

  public void onLoadFinished(Loader<Cursor> loader, final Cursor cursor) {
    Log.d(TAG, "CALLED onLoadFinished");
    ...
    else if(loader.getId() == LOADER_1)
    {
        while(cursor.moveToFirst())
        {
              Log.d(TAG, "LOOPING");
              cursor.moveToNext();
        }
    }
 }
4

1 に答える 1

2

現在のwhileループは機能しません。現在、カーソルをwhile条件の最初の位置に移動してから、whileブロック内でカーソルを次の位置に押しています。whileブロックが終了すると、条件が再度テストされるため、再度cursor.moveToFirst()呼び出されます。これは何度も何度も続きます。基本的に、無限ループでカーソルの最初の位置から 2 番目の位置に移動します。

ループは次のようになります。

while(cursor.moveToNext()) {
     Log.d(TAG, "LOOPING");
     // do other stuff 
     // each time you'll have a new row from the cursor
}
于 2012-08-05T06:22:35.590 に答える