2011-02-27 14 views
37

Estoy recuperando ID de recursos personalizados de un tipo de vista xml personalizado. Se me pide que especifique un valor int predeterminado para la recuperación y me pregunto ¿cuál es el rango de ID? ¿Son siempre positivos o incluyen cero?ID de recursos de Android

i.e es -1 una referencia "nula" válida Y/O es 0 una referencia "nula" válida?

Gracias

EDITAR

recursos XML personalizado/atributo de archivo

<resources> 
    <declare-styleable name="ToggleImageButton"> 
     <attr name="onImage" format="integer" /> 
     <attr name="offImage" format="integer" /> 
    </declare-styleable> 
</resources> 

Definido en mi constructor de mi interfaz de usuario personalizada

TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ToggleImageButton); 

int offResource = a.getInt(R.styleable.ToggleImageButton_offImage, -1); 

Básicamente, el -1 en el el final de la 2da línea es t El parámetro predeterminado para este tipo de datos. Puede inicializarse o no en la vista XML durante el desarrollo y esto permite que el comportamiento predeterminado se especifique de esta manera.

+0

-1 debe ser lo suficientemente seguro, aunque no puedo encontrar ningún documento al respecto. – xandy

+0

¿Los identificadores de recursos basados ​​en XML no siempre se generan automáticamente y se almacenan en R.java? ¿Qué quiere decir con "Se me pide que especifique un valor int predeterminado"? Sería útil que muestre la (s) línea (s) de código. – DJC

+0

@DJC, Android prefiere el valor predeterminado que arrojar excepciones, en caso de recuperar valores que no admiten nulos. – xandy

Respuesta

6

0 es un valor nulo/no válido para una ID de recurso.

+1

cualquier documentación para esto? – Kurru

+6

@Kurru La ID de recurso de Android siempre tiene un identificador de paquete, por lo que su valor no puede ser 0. –

Cuestiones relacionadas