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
-~----------~----~----~----~------~----~------~--~---

Reply via email to