Mi proyecto de Android ha duplicado las declaraciones entre Enum y string.xml
Tengo matrices de la secuencia a utilizar para el Spinner
o tal.
<string-array name="Animal"> <item >Cat</item> <item >Dog</item> <item >Rabbit</item> <item >Bird</item> </string-array>
Tengo una clase de contenedor para contener valores de entrada de usuarios o seleccionar de Spinner
. Las variables miembro son en su mayoría primitivas o Enum
.
- ¿Cómo activar el botón "Compartir" en la aplicación Android?
- Android: validar el archivo xml en tiempo de compilación?
- Android onfocuschange en xml
- ¿El complemento ADT crea automáticamente un archivo de construcción de hormigas?
- Eclipse - parseSdkContent falló el error - no reconoce archivos XML
public class Container { protected int index; protected int age; protected String name; protected Animal pet; }
Esta es la forma en que se define una de las clases de Enum (Note que esta es una versión más simple, y en mi código actual, hay algunos métodos o variables, y cada instancia de Enum es mayúscula, como CAT).
public enum Animal { Cat, Dog, Rabbit, Bird, }
Como ves, estoy repitiendo prácticamente lo mismo en Enum
y XML. Eso no es realmente bueno según DRY. ¿Qué debo eliminar, y cómo debería hacerlo?
En este punto, me inclino a mantener Enum
, ya que es funcionalmente más versátil que XML, y no menos fácil de mantener. El único problema posible que podría estar preocupado es su rendimiento. Pueden requerir más memoria, y algún trabajo adicional de codificación.
- Dynamic Center Aligned ViewPager
- ¿Cómo Android Studio valida XML para la pantalla de preferencias?
- Disposición de Android por debajo y por encima
- Atributos XML del diseño de combinación a RelativeLayout a través de inflar
- Analizar archivo XML local en Android
- ¿cómo puedo crear este tipo de diseño de chat en mi aplicación?
- GridView Resaltar elemento seleccionado
- Forzar la tableta a usar los recursos de xhdpi
Si desea evitar la duplicación, debe mantener el Enum y, a continuación, se rellena programmaticaly el hilandero utilizando for(Animal animal:Animal.values()) {...}
.
Puede usar el nombre de Enum como clave para recuperar una etiqueta localizada o cosas así.
- Construyendo un juego en Mobile. ¿Nativo o motor?
- Evento de sincronización con google calendar desde android