Ответ 1
Вы теряете элементы списка, потому что поведение по умолчанию для андроида во время изменения ориентации заключается в том, чтобы уничтожить вашу деятельность и воссоздать ее. Это поведение выбрано так, чтобы андроид мог воссоздать активность с новым макетом, который может использоваться, в частности, для новой ориентации.
Чтобы предотвратить исчезновение элементов списка, необходимо выполнить несколько действий. Первое, что помогает во время изменения ориентации, - это просто повторить одно и то же действие после изменения. Это можно сделать, добавив эту строку
android:configChanges="keyboardHidden|orientation"
к тегу активности в манифесте, с которым вы столкнулись. Это объясняется более подробно в этом question.
Поведение, которое вы объяснили, скорее всего, также появится, если пользователь откроет мероприятие, а затем отправит ваше приложение на задний план, и многие другие тяжелые вещи памяти извлекут ваше приложение из памяти, а затем снова просмотрят ваше приложение. Если это так, вы должны перезаписать метод onSaveInstanceState в своей деятельности. Как это объясняется в этом question.