I have an Android ListView, backed by an ArrayAdapter. When the user clicks on an item in the list, that item is removed. This all appears to work fine, you can click on each item until there are no items left.
However, it all goes wrong once text filtering occurs. Once the list has been filtered once, even if that filter is cleared, all subsequent calls to remove(Object) on the adapter fail to remove the item from the visible list. I've tried calling ListView.clearTextFilter() before removing the item, calling it after removing the item, and not calling it all. There's no difference.
I've looked through the source for ArrayAdapter.java and it seems that once filtering is set, the adapter uses one collection to respond to queries but updates a different one. I can see no obvious way to get it to revert its behaviour. Is this a bug or am I missing something?