You should use the data provider, this will trigger a refresh of the list view automatically.
On Tue, Jul 8, 2008 at 4:26 PM, Disco Stu 010 <[EMAIL PROTECTED]> wrote: > > Hi, > > I see...Is this to make the behavior more consistent? > > If it gets deprecated, then when a Cursor is being used as a > ListAdapter and an entry needs to be deleted, would we take the > following steps? > > 1. Issue a delete() to the DataProvider with the appropriate URL and > the relevant parameters. > 2. Issue a Cursor.requery() to get the List to refresh itself > OR > 2. Reissue the query to get a new Cursor and use that to create a new > ListAdapter. > > > Thanks, > DS. > > > On Jul 8, 2008, at 7:16 PM, Romain Guy wrote: > >> >> Hi, >> >> Cursor.deleteRow() will be deprecated in or removed from the next SDK. >> >> On Tue, Jul 8, 2008 at 4:10 PM, Disco Stu 010 >> <[EMAIL PROTECTED]> wrote: >>> >>> Hey Mark, >>> >>> Thanks again. I had reached the same conclusion as you that >>> Cursor.deleteRow() should result in a DataProvider.delete with some >>> URI. However, I dont see that happening. I added a Log.w statement to >>> query(), insert(), delete() and update() methods of the data provider >>> and only query() and insert() are being called. >>> >>> Maybe some Android team members can shed light on this? >>> >>> Thanks, >>> DS. >>> >>> PS: BTW, I am able to single-step through the debugger on insert so >>> atleast in this case, the debugger seems to work - NS. >>> >>> >>> On Jul 8, 2008, at 3:39 PM, Mark Murphy wrote: >>> >>>> >>>>> Mark Murphy, any thoughts? :) >>>> >>>> <blink, blink> >>>> >>>> Thanks for the vote of confidence! Though, bear in mind, I'm not an >>>> Android team member, nor do I play one on TV. >>>> >>>>> Now, according to the documentation, deleteRow is supposed to >>>>> delete a >>>>> row "from the underlying datastore". How does the Cursor know what >>>>> table/row the cursor correspond to? >>>> >>>> It's been a while since I looked at NotePad, so forgive me if I mis- >>>> speak >>>> here... >>>> >>>> NotePad uses a ContentProvider (NotePadProvider), so the Cursor >>>> you're >>>> presumably referring to is the one in the activity showing the notes >>>> (e.g., NotesList). In that case, the Cursor isn't directly accessing >>>> the >>>> database (a la SQLiteCursor), but rather wraps the Intent-laden IPC >>>> mechanism that Android has...somewhere...that bridges between the >>>> Cursor >>>> and the ContentProvider interface supported by the NotePadProvider. >>>> Content providers may not be in-process, particularly if they're >>>> supplied >>>> by some other application than your own. >>>> >>>> When you call deleteRow() on the Cursor, the Cursor does not know >>>> the >>>> table/row, as the Cursor has no idea how the ContentProvider is >>>> providing >>>> the content: SQLite? in-memory data? random-data generator? >>>> >>>> What the Cursor *does* know, though, is the Uri of the piece of >>>> content >>>> the Cursor presently points to. On a deleteRow(), that Uri >>>> eventually >>>> winds up as a parameter to the delete() method on the >>>> NotePadProvider >>>> (again, via Androidy IPC goodness). It is up to NotePadProvider to >>>> parse >>>> that Uri and determine the appropriate table/row. >>>> >>>>> I tried to single-step through the >>>>> NotesList application and the delete method belonging to the >>>>> DataProvider class, NotePadProvider is not used at all. >>>> >>>> I find that somewhat difficult to believe. Maybe the debugger >>>> doesn't step >>>> through the Android innards as Cursor#deleteRow() goes through the >>>> IPC to >>>> get to ContentProvider#delete(). >>>> >>>>> Further more, the cursor can be the result of a complex "join" >>>>> query >>>>> in which case, how would anyone know which row to delete? >>>> >>>> If you do a complex join while query()-ing >>>> "content://com.google.provider.NotePad/notes", and you get back rows >>>> with >>>> IDs of 4, 8, 15, 16, 23, and 42, the Cursor turns those into Uri >>>> instances >>>> like "content://com.google.provider.NotePad/notes/4" and so on. >>>> >>>> When it comes to Cursors and ContentProviders, the Uri is your >>>> friend. >>>> >>>> -- >>>> Mark Murphy (a Commons Guy) >>>> http://commonsware.com >>>> _The Busy Coder's Guide to Android Development_ -- Available Now! >>>> >>>> >>>>> >>> >>> >>>> >>> >> >> >> >> -- >> Romain Guy >> www.curious-creature.org >> >> > > > > > > -- Romain Guy www.curious-creature.org --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] Announcing the new M5 SDK! http://android-developers.blogspot.com/2008/02/android-sdk-m5-rc14-now-available.html For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---

