Вы можете сопоставить идентификатор флажка с его состоянием, используя глобальный HashMap. Затем вы устанавливаете флажок в подкласс, переопределяя при необходимости для сохранения / восстановления состояния на карте, и вместо этого используете свой класс в файлах xml.
Затем вы можете сохранить и восстановить карту при запуске приложения, используйте это для записи в файл:
file = context.openFileOutput("checkbox_state.prefs", Context.MODE_PRIVATE);
objectOutputStream = new ObjectOutputStream(file);
objectOutputStream.writeObject(myCheckboxesState);
И это читать из одного:
file = context.openFileInput("checkbox_state.prefs");
objectInputStream = new ObjectInputStream(file);
myCheckboxesState = (Map<Integer, Boolean>) objectInputStream.readObject();
От макушки головы я думаю, что это лучший способ.