私はかなり一般的であると私が推測する状況を持っています。私はJava列挙型を持っています:
public enum Flavour { CHOCOLATE, STRAWBERRY }
attrs.xml で定義されたカスタム属性があります。
<attr name="flavour">
<enum name="chocolate" value="0" />
<enum name="strawberry" value="1" />
</attr>
しかし、これは本当にもろい気がします。属性から列挙型に手動で正しくマッピングする必要があります。
誰かが enum Flavor の末尾に「SARDINE」を追加した場合、属性定義に自動的に追加されないことは明らかです。それは十分に公平です。
さらに悪いことに、誰かが列挙の途中に「SARDINE」を追加すると、「strawberry」を使用する xml レイアウトが壊れます。
人々はこれをどのように克服しますか?string の使用 (および の使用Flavour.valueOf()
) を検討しましたが、よりクリーンなソリューションがあることを期待していました。