ほとんどすべての要素がオプションである複雑なフォームを作成しようとしています。単一のフィールドと「要素の追加」ボタンから始まります。[追加] をクリックすると、フォームにSpinner追加できる要素の種類 (場所、写真、詳細なメモ、「今」以外のタイムスタンプなど) がフォームに表示されます。アイテムを選択すると が起動しActivity、各アイテムには異なるが関連付けられていActivityます。
さらに、各選択肢にはいくつかのデータ ビットが含まれますActivity。
- のアイコンと表示名
Spinner - データベースにデータを格納するためのキー (および Web サービスに渡すため)
- 結果を元のフォームに表示する方法のレイアウト (つまり、写真のサムネイル、場所の緯度/経度など)
私は、すべてが抽象FormElementクラスを拡張し、上記の余分なデータのそれぞれに静的要素を持つ一連のクラスを検討していました。(このソリューションの追加のバンプはResources、静的なコンテキストでの苦痛の程度です。)
これを可能な限りクリーンで保守しやすくするにはどうすればよいですか? このフォームに新しいタイプの要素を追加するために 5 つの異なるファイルを編集するのは本当に好きではありません。(主に、1 つを見逃して、バグのないものを追跡するのに何時間も費やすことを保証できるためです。)