¿Cómo eliminar dinámicamente elementos de ListView con un clic de botón?

stoy trabajando en una aplicación que requiere eliminar elementos de unaListView en un evento de botón.

Intenté eliminarlo deArrayList y cree todo el nuevo adaptador y vuelva a cargar la lista. Como mi lista es enorme, hacer esto afectará el rendimiento de mi aplicación. Entonces, me preguntaba si hay alguna otra manera por la cual podría eliminar un elemento de mi lista dinámicamente.

Editar Intenté lo que dijiste.

Cuando eliminé un elemento, funcionó perfectamente, pero a medida que aumento el número de elementos seleccionados, comienza a darme IndexOutOfBoundException.

Aquí está mi código:

public void onClick(View view)
{
    SparseBooleanArray checkedPositions = new SparseBooleanArray();
    checkedPositions.clear();
    checkedPositions = lv.getCheckedItemPositions();
    int size = checkedPositions.size();
    if(size != 0)
    {

        for(int i = 0; i <= size; i++)
        {
            if(checkedPositions.valueAt(i))
            {
                list.remove(notes.getItem(checkedPositions.keyAt(i)));
                notes.notifyDataSetChanged();
            }
        }
    }
        else{}
}

Aquí,notes es una referencia a un objeto de SimpleAdapter.

Respuestas a la pregunta(9)

Su respuesta a la pregunta