Как добавить кнопки «Далее / Назад» в Блокнот 3 на Android? - PullRequest
0 голосов
/ 28 марта 2011

Я пытаюсь добавить кнопки «Далее» / «Назад» в операции NoteEdit (код Notepad Exercise 3 ). Я создал меню настроек и добавил туда две кнопки. В onOptionsItemSelected я написал следующее:

case R.id.movie_menu_previous:
        Intent i = new Intent(this, MovieView.class);
        i.putExtra(MoviesDbAdapter.KEY_ROWID, mRowId+1);
        startActivity(i);
        return true;
case R.id.movie_menu_next:
        Intent i = new Intent(this, MovieView.class);
        i.putExtra(MoviesDbAdapter.KEY_ROWID, mRowId+1);
        startActivity(i);
    return true;

Но проблема в том, что количество строк ограничено. Итак, если пользователь нажимает Next в последнем ряду, я получаю FC. Как я могу знать, что это первый ряд? последний ряд? (Я изменил исходный код, и теперь в базе данных у меня много записей, но не все они показаны в ListView) И не будет ли лучше изменить логику функции populateFields и вызывать ее вместо создания нового действия?

1 Ответ

0 голосов
/ 02 апреля 2011

Я переопределил функцию populatefields и добавил туда следующее:

mRowId = mDbHelper.getNextRecord(1, mRowId);

А вот код функции getNextRecord:

public long getNextRecord(int next, long rowId) {
    long nextRowId = 0;
    Cursor mCursor = mDb.query(DATABASE_TABLE, new String[] {KEY_ROWID,KEY_TITLE}, KEY_TITLE + "!=\"\"", null, null, null, null);
    if (mCursor.moveToFirst()) {
        do {
            if (mCursor.getLong(mCursor.getColumnIndexOrThrow(KEY_ROWID)) == rowId) {
                if (!mCursor.move(next)) {
                    // first (-1) or last position
                    if (mCursor.getPosition() == -1) {
                        mCursor.moveToLast();
                    } else {
                        mCursor.moveToFirst();
                    }
                }
                nextRowId = mCursor.getLong(mCursor.getColumnIndexOrThrow(KEY_ROWID));
                break;
            }
        } while (mCursor.moveToNext());
    }
        mCursor.close();
    return nextRowId;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...