Невозможно закрыть курсор при установке на SimpleCursorAdapter - PullRequest
1 голос
/ 24 июня 2010

Я выполняю определенные операции с базой данных, после чего прикрепляю Cursor к SimpleCursorAdapter для отображения List в моей ListActivity.Если я закрываю курсор в блоке finally (или в любом месте после кода ниже), в списке ничего не отображается

SimpleCursorAdapter scAdapter = new SimpleCursorAdapter(this, 
          R.layout.list_row, cursor,
          new String[] { Constants.KEY_TITLE }, new int[] { R.id.text1 });

Если курсор не закрыт, Android выдает исключение, когда действие выполняет запрос к другому действию или* пассивируется.

PS Я пытался закрыть курсор внутри onPause (), но Android жалуется перед вызовом onPause.

Ответы [ 3 ]

4 голосов
/ 24 июня 2010

Вы должны оставить открытым курсор на вашем блоке finally.

Вы пропустили вызов в своей деятельности.

startManagingCursor(cursor);

Это обеспечит управление курсором для вас.

3 голосов
/ 05 августа 2011

Я обхожу это, создавая курсор на лету. Похоже, что SimpleCursorAdapter будет управлять курсором за вас.

SimpleCursorAdapter scAdapter = new SimpleCursorAdapter(this, 
      R.layout.list_row, db.query(...),
      new String[] { Constants.KEY_TITLE }, new int[] { R.id.text1 });

Кроме того, начиная с поста Pentium10, startManagingCursor устарел.

0 голосов
/ 24 июня 2010

Это решает только часть проблемы.Когда я запускаю ManagingCursor (курсор);и нажмите клавишу меню> menuActivity затем> клавишу возврата я получаю:

ERROR/Cursor(4047): Invalid statement in fillWindow()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...