viernes, 19 de octubre de 2012

Recorrer drawables obteniendo su id y su nombre, solución a "code too large"

Con el siguiente snippet de código podéis recorrer todos los recursos de la aplicación e ir uno a uno obteniendo su nombre y su identificador de recurso.

Puede parecer una tontería pero es especialmente útil para por ejemplo cargar un array con los recursos que empiezan llamándose de una forma. Por ejemplo es común utilizar esto cuando se necesita un array con imaginad 800 recursos cargados en un cuerpo static.

( de otra forma obtendríais el poco conocido error de compilación "Code too large").


Field[] drawables = R.drawable.class.getFields();
        R.drawable drawableResources = new R.drawable();
        for (Field f : drawables) {
            try {
                if(f.getName().startsWith("ejemplo_"))
                {
                  arrayRecursos.put(f.getName(),f.getInt(drawableResources));   
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }



Happy coding!.

No hay comentarios: