2012-08-12 25 views
11

/res/rawフォルダに保存したアンドロイドリソースのリソースIDを取得したいとします。Android:アンドロイドリソースのリソースIDを取得する方法

使用 -

1)私はクラスにリソースの名前を渡しています。この名前は、文字列fileNemeに保存されています。

2)このファイルを取得する文はthis.getResources().openRawResource(R.raw.xyz)です。ここで、xyzは実際のファイル名です。

3)私はopenRawResource(int)メソッドがint値を取ることを理解しています。したがって、文をthis.getResources().openRawResource(R.raw.filename)として使用することはできません。filenameは上記で定義した文字列変数です。

問題:filenameという文字列に保存されているファイル名を知っていますが、メソッドがリソースIDをint形式で取得するため、ファイル名を開くことができません。

このファイル名のリソースIDを取得し、それをint変数filename_intに保存し、この変数をopenRawResourceメソッドに渡す必要があります。

私はこれをどのように達成できるか教えてください。

答えて

34

あなたはgetIdentifier()でリソースIDを取得することができる必要があります:

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

おかげで、今取り組んでトン。 – user1576339

+1

ありがとう!次の男をしばらく保存するには、 "xyz"パラメータがXMLファイルに必要な文字だけです。あなたはそれの前後に何もないと思います。 「res /」や「@raw」などはありません。xyzをきれいにしてください。 – Ohiovr

+2

また、「xyz」には接尾辞を含めないでください。例えばrawリソースmyfile.jsonは単に "myfile"になります。 –

関連する問題