Использование add / remove на вашем адаптере и использование notifyDataSetChanged () позволяет вам не создавать новые адаптеры снова и снова.
Объявление вашего адаптера глобальным
ArrayAdapter<Object> adapter;
Когда вы добавляетек списку объектов, к которому присоединен адаптер (строки или любой другой используемый вами объект), добавьте функцию добавления к адаптеру и вызовите notifyDataSetChanged:
adaper.add(Object);
adapter.notifyDataSetChanged();
, а при удалении элемента из списка добавьте также:
adapter.remove(Object);
adapter.notifyDataSetChanged();