2012-08-12 12 views
11

Deseo obtener una identificación de recursos de un recurso de Android que he guardado en la carpeta/res/raw.Android: Cómo obtener una identificación de recursos de un recurso de Android

El uso -

1) Estoy pasando el nombre del recurso a la clase y este nombre se está guardando en una cadena fileNeme.

2) La declaración para obtener este archivo es this.getResources().openRawResource(R.raw.xyz) donde xyz es el nombre de archivo real.

3) Entiendo que el método openRawResource (int) toma un valor int por lo que no puedo usar la instrucción como this.getResources().openRawResource(R.raw.filename) donde filename es una variable de cadena definida anteriormente.

Problema: Sé el nombre del archivo que está guardado en una cadena llamada nombre de archivo pero no puedo abrirlo ya que el método toma la identificación del recurso en formato int.

Necesito obtener el ID de recurso de este nombre de archivo y guardarlo en una variable int filename_int y pasar esta variable al método openRawResource.

Háganme saber cómo puedo lograr esto.

Respuesta

34

Usted debe ser capaz de obtener el identificador de recurso con getIdentifier():

int id = this.getResources().getIdentifier("xyz", "raw", this.getPackageName()); 
+0

Gracias por tonelada de su trabajo ahora. – user1576339

+1

¡gracias! Para ahorrarle al siguiente chico un poco de tiempo, el parámetro "xyz" es exactamente el que desea para su archivo xml. Asegúrate de que no tienes nada antes o después. Sin "res /" o "@raw", etc. simplemente limpie xyz – Ohiovr

+2

Además, el "xyz" no debe incluir ningún sufijo. p.ej. el recurso en bruto myfile.json sería simplemente "miarchivo". –

Cuestiones relacionadas