2011-09-17 6 views
1

私はCursorでアクセスしているSqlite DBを持っています。私はカーソルをスクロールして "check();"を実行することができます方法。私が持っている問題は、カーソルをスクロールするときです。カーソルとSqlite DBを使用してカーソルの最後のエントリから最初のエントリに移動するにはどうしたらいいですか?

すなわち:私は文が自動的に適切な場所に移動する場合に入れてみました

...ときに最初のエントリで私の前のボタンを押すとき、または最後のエントリで私の横にあるボタンを押します。

私がしようとしているのは、私が最初の位置にいて、前のボタンを押すと、カーソルの最後の位置に移動して続行したい場合です。

また、カーソルが最後の位置にあり、それを超えてスクロールしようとすると、最初の位置に移動します。以下はこれを実現しようとする私の試みです。

@Override ます。public void onClickの(ビューV){

View src = v; 
    switch (src.getId()) { 
    case R.id.ButtonPrevious:  

     if ((main.cursor.moveToPrevious()) == (main.cursor.moveToFirst())) 
     { 
      main.cursor.moveToLast(); 

     }else{ 
      main.cursor.moveToPrevious(); 
     }        
     check(); 



    case R.id.ButtonNext: 


     if ((main.cursor.moveToNext()) == (main.cursor.moveToLast())) 
     { 
      main.cursor.moveToFirst(); 

     }else{ 
     main.cursor.moveToNext(); 
     } 
     check(); 
    } 
} 

答えて

3

あなたはカーソルクラスのisAfterLastとisBeforeFirstメソッドを利用する必要があります。このようなことをしてください

case R.id.ButtonPrevious: 
    cursor.moveToPrevious(); 
    if (cursor.isBeforeFirst()){ 
     cursor.moveToLast(); 
    } 
    check(); 
case R.id.ButtonNext: 
    cursor.moveToNext(); 
    if (cursor.isAfterLast()){ 
     cursor.moveToFirst(); 
    } 
    check(); 

すべてのコードではなく、重要な部分です。希望が役立ちます。

+0

ありがとう、たくさんの男!あなたの答えはトリックでした!私は私の中でcursor.isLastとcursor.isFirst文を使っていました。プログラムはもう一度前進しています:) – EltMrx

関連する問題