entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Abrir/analizar todos los archivos ubicados dentro de carpeta [Android]

Tengo mi código el me sirve para obtener coordenadas de un archivo .kml el proceso es largo pero actualmente lo hago funcionar especificando el archivo a analizar de la siguiente forma:

InputStream is = contexto.getResources().openRawResource(R.raw.miarchivo);

Tengo en mi carpeta raw todos mi archivos .kml los cuales deseo que analice de uno en uno... quiero cambiar el (R.raw.miarchivo) por una variable que en liste todos los archivos contenidos en mi carpeta raw. de modo que los vaya analizando todos algo similar a esto:

for (i=0; i<archivos.size(); i++){
   InputStream is = contexto.getResources().openRawResource(archivos.getname());
   .....
}

Mi pregunta es: ¿que tipo de variable seria la que tengo que usar para luego pasárselo al openRawSource()? y ¿Es correcto que meta los archivos en un Array o existe otra forma de en listar los archivos para luego pasárselo al openRawSource?

1 Respuesta

2votos

1raziel1 Puntos2210

Hola, lo que le tienes que pasar a openRawResource() es un Id(int) ,prueba en vez de poniendo getName(), getId(). O si no prueba como yo he hecho con este array de botones pero con tus archivos


        for(int i=0;botones.length-1>i;i++){
            String botonId="button"+i;
            int resID = getResources().getIdentifier(botonId,"id",getPackageName());
            botones[i]=(Button)findViewById(resID);
            .
            .
            .
        }

2votos

Andhii1293 comentado

Al final tu respuesta me dio una idea la cual funciono, el dato que le tengo que pasar al OpenRawSource, en efecto es un int, entonces lo que hice fue crear mi array de int con la ubicación de archivos algo así:

public static ArrayList<Integer> ubikml = new ArrayList<>();   

Inicio.ubikml.add(R.raw.r1);
Inicio.ubikml.add(R.raw.r10);
Inicio.ubikml.add(R.raw.r11);
Inicio.ubikml.add(R.raw.r13);
...

Una vez lleno mi array solo se lo paso a mi linea de código que abre mis archivos, algo así:

for (int i=0; i<ubikml.size();i++){
 InputStream is = contexto.getResources().openRawResource(ubikml.get(i));
 ...
}

...Y funciono!!
Gracias :)

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta