Я пытаюсь построить сложную форму, где почти все элементы являются необязательными. Он начинается с одного поля и кнопки «Добавить элемент». При нажатии кнопки «Добавить» форма отображает Spinner
типов элементов, которые можно добавить в форму (местоположение, фотография, подробное примечание, отметка времени, отличная от «сейчас» и т. Д.). Когда вы выбираете элемент, он запускает Activity
, и каждый элемент имеет различную связанную Activity
.
Кроме того, каждый выбор будет иметь несколько бит данных, которые было бы неплохо как-то «сохранить» с помощью Activity
:
- Значок и отображаемое имя в
Spinner
- Ключ для хранения данных в БД (а также для передачи в веб-сервис)
- Схема для отображения результата в исходной форме (то есть миниатюра для фотографии, широта / долгота для местоположения и т. Д.)
Я рассматривал набор классов, которые расширяют абстрактный класс FormElement
и будут иметь статические элементы для каждой из указанных выше дополнительных частей данных. (Дополнительным ударом для этого решения является то, сколько боли Resources
находятся в статическом контексте.)
Как я могу сделать это настолько чистым и обслуживаемым, насколько это возможно? Мне бы не понравилось редактировать пять разных файлов, чтобы добавить новый тип элемента в эту форму. (Главным образом потому, что я могу гарантировать, что пропущу один и часами отыскиваю чучела).