开发者

How to refresh a ListView to requery its cursor to repopulate its data and its views

I have a ListView which uses a CursorAdatper as its adapter. I would like to have the list view to

  • requery its data
  • refresh its view once the requery is done.

I tried:

CursorAdapter adapter = (CursorAdapter)listView.getAdapter();
adapter.notifyDataSetChanged();

And i tried:

CursorAdapter adapter = (CursorAdapter)listView.getAdapter();
adapter.getCursor().requery();

but none worked. I have set a break point in m开发者_如何学Pythony ContentProvider's query method, but I don't see the requery being called or my ListView getting refreshed with new data.

Can you please tell me what is the solution to my problem?

Thank you.


Calling requery() on a database or content provider Cursor attached to ListView via a CursorAdapter automatically refreshes the list (your second scenario above). You can see some examples of this. If that is not working for you, there may be some bug in your ContentProvider or adapter.


In the new API (using loader manager) you can use:

getLoaderManager().getLoader(_YOUR_LOADER_ID_).forceLoad();


you can try: adapter.changeCursor(new cursor). It work for me


I know this answer is probably too late but fyi to others, if you are using a cursor loader (as you probably should do instead), just do

getContext().getContentResolver().notifyChange(uri, null);

where uri is the same uri used for the cursor loader.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜