如何通过id获取原始资源文件名?

时间:2012-01-05 20:11:58

标签: java android

我在res / raw中有.ogg文件,我已经实现了一个将文件保存到SD卡的功能,我想从原始文件中设置文件名。

4 个答案:

答案 0 :(得分:10)

它应该与resources.getResourceName( );

一起使用

答案 1 :(得分:9)

使用Resources.getResourceName(id)获取package:type/entrynameResources.getResourceEntryName(id)获取条目名称(文件名)。

答案 2 :(得分:1)

如果您要从资源ID中查找名称,可以使用Resources.getResourceName()。您可以使用Context.getResources()获取Resources对象。

就个人而言,我宁愿在strings.xml中存储一个字符串数组,并将其映射到资源ID,但这取决于你真正想要实现的目标。

答案 3 :(得分:0)

这是一个非常老的问题,但是如果其他人试图做同样的事情,这可以获取文件名:

Resources myResources = context.getResources();

String myFileName = myResources.getString((int)R.raw.myFile);

由于某种原因,即使R.raw.myFile的类型为:“ final int” 并且Resources.getString()使用参数“ int id”,

如果您不将R.raw.myFile强制转换为int,则Lint将用错误标记该行 “类型为字符串的预期资源”

尽管仔细阅读了文档,但似乎Resources.getString()的重载版本似乎没有带字符串参数。

我使用的是Android Studio v3.6.3,支持的SDK最低为21。