Как обновить cursorAdapter, особенно при удалении последнего элемента в списке? - PullRequest
0 голосов
/ 11 мая 2011

Как обновить cursorAdapter, особенно при удалении последнего элемента в списке?


сценарий:

рабочий:

  • редактирование строки просмотра списка,OK
  • добавление строки просмотра списка, OK
  • удаление строки просмотра списка (по одному), пока не останется один, OK

проблема:

  • удаление последней строки / элемента FAILED;Вы должны сначала закрыть свою деятельность и открыть ее снова, чтобы обновить.

Я использую адаптер курсора, и я хочу обновить его список при удалении последней строки / элемента представления списка.Мой метод обновления адаптера состоит в том, чтобы назначить новый экземпляр cursorAdapter моему Listview (как будто, делая это снова и снова).

code:

listview.setAdapter(new ImmunizationListCursorAdapter(
                    this,// current activity
                    R.layout.imm_list_row,// layout for each row
                    immunizationCursor,// the data
                    // Pass in the cursor to bind to.
                    // Array of cursor columns to bind to.
                    new String[] { ImmunizationModel.IM_COL_VACNAME,
                            ImmunizationModel.IM_COL_DATE },
                            // Parallel array of which template objects to bind to
                            // those
                            // columns.
                            new int[] { R.id.text_vaccine_name,
                            R.id.text_date_description }));

там, где он есть.

кто-нибудь может мне помочь?: ((

1 Ответ

0 голосов
/ 01 июля 2011

Все, что вам нужно сделать, это вызывать productCursor.requery() после каждой модификации набора данных.

requery() автоматически запускает выполнение вашего запроса (для получения новых данных) плюс уведомление для ListView.(адаптером), что он должен сам обновиться.

Кстати, пока не так давно я использовал тот же неправильный метод назначения нового экземпляра CursorAdapter ...

...