如何使用Cursor和Sqlite DB从光标中的最后一个条目移动到第一个条目(反之亦然)?

时间:2011-09-17 13:01:13

标签: android database cursor

我有一个Sqlite数据库,我正在使用Cursor访问。我可以滚动光标并运行我的“check();”方法。我遇到的问题是当我滚过光标时。

即:在第一个条目上点击我的上一个按钮,或者在最后一个条目时按下我的下一个按钮...

我试图输入一个if语句来自动移动到正确的位置。

我要做的是,如果我在第一个位置并点击上一个按钮,我想移动到光标中的最后一个位置并继续。

此外,如果光标位于最后位置并尝试滚动,我希望它转到第一个位置。以下是我尝试实现这一目标的尝试。

@覆盖     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();
    }
}

1 个答案:

答案 0 :(得分:3)

您需要使用Cursor类的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();

不是所有代码,而是关键部分。希望有所帮助。