Как я могу перейти от моей последней записи в курсоре к первой (и наоборот), используя Cursor и Sqlite DB? - PullRequest
1 голос
/ 17 сентября 2011

У меня есть Sqlite DB, к которому я получаю доступ с помощью курсора. Я могу прокрутить курсор и запустить "check ();" метод. у меня возникает проблема с прокруткой курсора.

т.е.: нажатие на мою предыдущую кнопку при первой записи или нажатие на следующую кнопку при последней записи ...

Я пытался вставить оператор if для автоматического перемещения в нужное место.

Что я пытаюсь сделать, так это если я нахожусь на первой позиции и нажимаю предыдущую кнопку, я хочу переместиться на последнюю позицию в курсоре и продолжить.

Также, если курсор находится в последней позиции и пытается прокрутить мимо, я бы хотел, чтобы он переместился в первую позицию. Ниже моя попытка сделать это возможным.

@ Override public void onClick (View 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 Ответ

3 голосов
/ 17 сентября 2011

Вам необходимо использовать методы isAfterLast и isBeforeFirst класса Cursor. Сделай что-то вроде этого

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

Не весь код, а критическая часть. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...