In my code I have a ListActivity.  One of the context menu options for a list item is "delete", which opens a dialog confirming the action.  I intended to implement this functionality by first deleting the item's data in the database and then removing it from the ArrayAdapter.  It is in removing it from the ArrayAdapter that I get an UnsupportedOperationException...
public void onClick(DialogInterface dialog, int id) 
{
    asynchronousDeleteEntry(CONTEXT_SELECTED_ID);
    dialog.dismiss();                          
    //I -know- that the adapter will always be an object
    //of ArrayAdapter<JournalEntry> because this is the only type
    //I ever call setListAdapter with.  Debugging confirms this
    @SuppressWarnings("unchecked")
    final ArrayAdapter<JournalEntry> adapter = (ArrayAdapter<JournalEntry>)
        journalViewerListActivity.this.getListAdapter();
    //EXCEPTION OCCURS HERE                                
    adapter.remove(adapter.getItem(CONTEXT_SELECTED_POSITION));
    //refreshes the ListView to show the new items
    adapter.notifyDataSetChanged();
Any help appreciated. Thanks!
It seems that this problem crops up when you initialize your ArrayAdapter with an array. Try initializing it with a List<JournalEntry>. Reference: Why can't one add/remove items from an ArrayAdapter?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With