Auslesen von raw-Ressourcen

  • 2 Antworten
  • Letztes Antwortdatum
W

Wolverine566561

Gast
Hallo,

ich schreibe eine App, bei der ein Benutzer eine Zahl in ein Textfeld eingeben kann um eine bestimmte Audio-Datei abzuspielen. Im Prinzip, wie bei einer Musik-Box.

Der Erzeugung läuft ja nun so ab:

Code:
MediaPlayer.create(activity, resID);

und genau an der Stelle resID stolpere ich. Ich möchte jetzt keine switch-Anweisung/Fallunterscheidung für 200 (oder mehr) Zahl-/AudioDatei-Zuweisungen schreiben. Stattdessen würde ich gerne ne schlanke for-Schleife schreiben.

Hier jetzt mein konkretes Problem:
Wie bekomme ich die resID iterativ heraus? Gibt es sowas wie Reflection in Android (also eine Methode die mir den Wert eines Attributs einer Klasse liefert indem ich dieser Methode den Attributnamen übergebe)?

Viele Grüße

Der ursprüngliche Beitrag von 17:51 Uhr wurde um 19:51 Uhr ergänzt:

Hat sich erledigt. Java-Reflections funktioniert wunderbar ;-) Manchmal hilft es ein bisschen Abstand zu halten und dann nochmal drauf zu schauen ;-)
 
Statt die Musikdateien in den res/raw Ordner zu packen, kannst du auch den assets/ Ordner benutzen. Dann brauchst du nicht mit Metadaten arbeiten.

Die Dateien haben keine id, lassen sich dafür aber mit den AssetManager viel einfacher durchsuchen. Und du kannst für die Suche die Originalnamen der Dateien benutzen.
 
  • Danke
Reaktionen: Wolverine566561
Vielen Dank für den Hinweis. Das werde ich mir für die Zukunft merken. Ich belasse meine Lösung mal so wie sie ist, aber Deine Lösung klingt weitaus besser als die Reflections-Geschichte. Vielen Dank nochmal.
 
Zurück
Oben Unten