Android:如何获取android资源的资源ID

use*_*339 13 resources android

我想获取我已保存在/ res/raw文件夹中的android资源的资源ID.

使用 -

1)我将资源的名称传递给类,该名称保存在字符串fileNeme中.

2)获取此文件的语句是this.getResources().openRawResource(R.raw.xyz)xyz是实际文件名的位置.

3)我理解openRawResource(int)方法采用int值因此我不能使用该语句,this.getResources().openRawResource(R.raw.filename)因为filename是上面定义的字符串变量.

问题:我知道保存在名为filename的字符串中的文件名但我无法打开它,因为该方法采用int格式的资源ID.

我需要获取此文件名的资源ID并将其保存在int变量filename_int中,并将此变量传递给openRawResource方法.

请让我知道如何实现这一目标.

ekh*_*olm 44

您应该能够获得资源ID getIdentifier():

int id = this.getResources().getIdentifier("xyz", "raw", this.getPackageName());
Run Code Online (Sandbox Code Playgroud)

  • 此外,"xyz"不应包含任何后缀.例如,原始资源myfile.json只是"myfile". (4认同)
  • 谢谢!为了保存下一个人,"xyz"参数正是你想要的xml文件的字符.你之前或之后什么都没有.没有"res /"或"@raw"等.只需清理xyz (2认同)