2012-08-12 3 views
11

Je veux obtenir un ID de ressource d'une ressource android que j'ai enregistré dans le dossier/res/raw.Android: Comment obtenir un ID de ressource d'une ressource android

L'utilisation -

1) Je passe le nom de la ressource à la classe et ce nom est en cours d'enregistrement dans une chaîne fileNeme.

2) L'instruction pour obtenir ce fichier est this.getResources().openRawResource(R.raw.xyz) où xyz est le nom de fichier actuel.

3) Je comprends que la méthode openRawResource (int) prend une valeur int donc je ne peux pas utiliser l'instruction comme this.getResources().openRawResource(R.raw.filename) où filename est une variable de chaîne définie ci-dessus. Problème: Je connais le nom de fichier qui est enregistré dans une chaîne appelée nom de fichier mais je ne peux pas l'ouvrir car la méthode prend l'ID de ressource au format int.

J'ai besoin d'obtenir l'identifiant de ressource de ce nom de fichier et de l'enregistrer dans une variable int filename_int et de passer cette méthode à la méthode openRawResource.

S'il vous plaît laissez-moi savoir comment puis-je y parvenir.

Répondre

34

Vous devriez être en mesure d'obtenir l'identifiant de ressource avec getIdentifier():

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

Merci une tonne de son travail maintenant. – user1576339

+1

merci! Pour sauver le gars suivant, le paramètre "xyz" est exactement le caractère que vous voulez pour votre fichier xml. Besure vous n'avez rien avant ou après. Pas de "res /" ou "@raw" etc .. juste nettoyer xyz – Ohiovr

+2

Aussi, le "xyz" ne doit pas inclure de suffixe. par exemple. ressource brute myfile.json serait juste "myfile". –

Questions connexes