2012-08-12 1 views
11

Ich möchte eine Ressourcen-ID von einer Android-Ressource, die ich in/res/Raw-Ordner gespeichert habe.Android: Wie bekomme ich eine Ressourcen-ID von einer Android-Ressource

Die Verwendung -

1) ich den Namen der Ressource zu der Klasse bin vorbei und dieser Name fileNeme in einem String gespeichert wird.

2) Die Anweisung zum Abrufen dieser Datei lautet this.getResources().openRawResource(R.raw.xyz), wobei xyz der tatsächliche Dateiname ist.

3) Ich verstehe, dass openRawResource (int) -Methode einen int-Wert nimmt, daher kann ich die Anweisung nicht als this.getResources().openRawResource(R.raw.filename) verwenden, wobei Dateiname eine oben definierte String-Variable ist.

Problem: Ich kenne den Dateinamen, der in einer Zeichenfolge namens Dateiname gespeichert wird, aber ich kann es nicht öffnen, da die Methode die Ressource-ID im Int-Format verwendet.

Ich muss die Ressourcen-ID dieses Dateinamens abrufen und in einer int-Variablen filename_int speichern und diese Variable an die Methode openRawResource übergeben.

Bitte lassen Sie mich wissen, wie ich das erreichen kann.

Antwort

34

sollten Sie in der Lage sein, die Ressource-ID mit getIdentifier() zu bekommen:

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

Dank einer Tonne seines jetzt arbeiten. – user1576339

+1

danke! Um den nächsten Typ einige Zeit zu speichern, ist der Parameter "xyz" genau die Zeichen, die Sie für Ihre XML-Datei benötigen. Vielleicht hast du nichts davor oder danach. Nein "res /" oder "@raw" etc .. nur sauber xyz – Ohiovr

+2

Auch sollte die "xyz" kein Suffix enthalten. z.B. Die Rohressource myfile.json wäre einfach "myfile". –

Verwandte Themen