У Вас размытый вопрос, ну да ладно.
1) Вам нужно писать свой адаптер, оперирующий POJO с двумя полями, id ресурса и пояснительный текст. Т.е.
public class YourAdapter extends ArrayAdapter<YourPojo>
2) Вам нужно повесить на чекбокс Listner на изменение состояния нажатия чекбокса, в теле которого Вы редактируете коллекцию адаптера, устанавливая нужные id иконок ресурсов и уведомляете список о том, что данные адаптера изменились.
3) Вам нужно отнаследовать onBackPressed() Вашего активити таким образом, чтобы проверять, было ли произведено редактирование списка. Сделать это можно разными способами, к примеру, используйте boolean флаг.
4) Чтобы сохранять Ваш список, Вы можете сохранять его в качестве JSON массива во внутренней памяти телефона или в таблице SQLite БД. Или еще миллионом способов на Ваш вкус.